前言


其实有很多有用的东西,当时学习了,也记住了,但是时间久了就是记不住,所以导致在日常开发中总是想不起来原来这个东西可以这么用,而去选择了更加复杂和麻烦的方式。其实我们日常学习的知识就是拿来用的,即使你今天把知识点背下来了,没有去思考这个知识点我们可以用来干嘛,不需要几天就会慢慢地忘掉。所以今天我们来了解一下在日常学习时你遗漏掉或者忘掉或者没有思考过的你不知道的JSON.stringify() 的威力。


通过需求学习JSON.stringify()

首先我们在开发的过程当中遇到这样一个处理数据的需求

const todayILearn = {_id: 1,content: '今天学习 JSON.stringify(),我很开心!',created_at: 'Mon Nov 25 2019 14:03:55 GMT+0800 (中国标准时间)',updated_at: 'Mon Nov 25 2019 16:03:55 GMT+0800 (中国标准时间)'
}

我们需要将上面这个对象处理成下面这个对象

const todayILearn = {id: 1,content: '今天学习 JSON.stringify(),我很开心!',createdAt: 'Mon Nov 25 2019 14:03:55 GMT+0800 (中国标准时间)',updatedAt: 'Mon Nov 25 2019 16:03:55 GMT+0800 (中国标准时间)'
}

也就是在不改变属性的值的前提下,将对象属性修改一下。 把_id 改成 id,把updated_at 改成 updatedAt,把 created_at 改成 createdAt。我们现在通过这个小小的需求来见识一下 JSON.stringify() 的强大吧。

首先要解决这个问题我们有很多种解决方式,我们先提供两种不优雅的解决方案:

  • 方案一:一次遍历+多声明一个变量
// 多一个变量存储
const todayILearnTemp = {};
for (const [key, value] of Object.entries(todayILearn)) {if (key === "_id") todayILearnTemp["id"] = value;else if (key === "created_at") todayILearnTemp["createdAt"] = value;else if (key === "updatedAt") todayILearnTemp["updatedAt"] = value;else todayILearnTemp[key] = value;
}
console.log(todayILearnTemp);
{ id: 1,content: '今天学习 JSON.stringify(),我很开心!',createdAt: 'Mon Nov 25 2019 14:03:55 GMT+0800 (中国标准时间)',updatedAt: 'Mon Nov 25 2019 16:03:55 GMT+0800 (中国标准时间)'
}

方案一完全没有问题,可以实现。但是多声明了一个变量又加上一层循环并且还有很多的 if else 语句,怎么都显得不太优雅。


  • 方案二:暴力 delete 属性和增加属性
// 极致的暴力美学
todayILearn.id = todayILearn._id;
todayILearn.createdAt = todayILearn.created_at;
todayILearn.updatedAt = todayILearn.updated_at;
delete todayILearn._id;
delete todayILearn.created_at;
delete todayILearn.updated_at;
console.log(todayILearn);
//    太暴力												

JSON.stringfy()详解相关推荐

  1. python中json模块博客园_Python中的Json模块详解

    Python中的Json模块详解 Json(JavaScript Object Notation)它是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点.许多主流的编程语言都在用它来进 ...

  2. JSON开发详解-张晨光-专题视频课程

    JSON开发详解-25人已学习 课程介绍         JSON 是轻量级的文本数据交换格式,JSON 文本格式在语法上与创建 JavaScript 对象的代码相同,JSON 比 XML 更小.更快 ...

  3. php组装json数据包,php封装json通信接口详解及实例

    php创建JSON数据详解: //创建一个字符数组 $arr=array( 'id'=>1, 'name'=>'david' ); echo json_encode($arr);//这个是 ...

  4. SpringMVC接受JSON参数详解及常见错误总结我改

    SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一个统一的接口给浏览器还有APP.所以把一个练手项目的前 ...

  5. 【JSON】JSON入门详解(二)

    文章目录 JSON基础文章荐读 JavaScript创建JSON对象 JSON与XML的那些事 JSON与XML的相同之处 JSON与XML的不同之处 AJAX相关JSON与XML JSON与XML的 ...

  6. python中的json函数_python中装饰器、内置函数、json的详解

    装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...

  7. android Json解析详解(详细代码)

    android Json解析详解(详细代码)   JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当 ...

  8. pm2 start 带参数_pm2 start命令中的json格式详解

    就像苏南大叔所说的那样,pm2 start npm -- start这条命令是pm2的万能命令,pm2 start ,就是这一系列命令中的最豪华命令.这个json我们可以理解为一个任务参数描述文件.通 ...

  9. C语言:JSON格式详解

    C语言:JSON格式详解 C语言:cJSON库用法详解 C语言:使用cJSON库构造JSON C语言:使用cJSON库解析JSON字符串 JSON 简介 JSON全称 JavaScript Objec ...

最新文章

  1. dw的css样式怎么删除掉,三种方法教你DreamWeaver下如何应用CSS样式
  2. 你的企业客户服务,离卓越还有多远?
  3. sql and和in能连用吗_解析法律英语中【同义词连用】现象
  4. C#垃圾回收(GC)
  5. 编写EasyCluster V2.0 Portal主界面时的HTML心得(NOWRAP)
  6. 如何学习oracle
  7. Python函数的定义和使用教程
  8. c++ string替换指定字符串内的所有字段
  9. Ubuntu利用Samba映射磁盘到Windows(转)
  10. arduino自带程序_arduino代码运行时间测试函数,代码性能运行时间测试方法
  11. [C++11]返回值类型后置
  12. echarter: ECharts的R语言接口(一)
  13. Echarts 全属性 宝典
  14. Unity 置顶点击的对象
  15. atomikos 配置好后 @transactional 注解不生效的问题
  16. 在Outlook中使用Notes功能的入门指南
  17. 高可用服务设计之二:Rate limiting 限流与降级
  18. 关于UniApp启动到微信小程序工具提示找不到app.json
  19. Altium Designer 15详细安装教程
  20. TOS和DSCP总结

热门文章

  1. L1-040. 最佳情侣身高差
  2. vue使用参数直接取到data数据
  3. 一文带你了解800万像素车载摄像头
  4. server 2008 r2 怎么打开任务管理?
  5. Modra Pharmaceuticals于2021 ASCO GU年会公布其转移性前列腺癌IIb期临床试验初步数据
  6. 网站被黑中毒WebShell木马的解决方案
  7. Docker以及DockerHub的使用
  8. Linux系统:我们的征途是星辰大海!
  9. tinymce php,php - 用TinyMCE制作的PHP样式表(Hor Zebra) - SO中文参考 - www.soinside.com
  10. Arduino通过RXTX联通JAVA实现数字温度计案例