前言

JSON崛起不是意外,是顺应时代;相当简洁小巧的书写模式及阅读方式;

基础

看这篇文章: JSON知识点汇总_W3SCHOOL


初步进阶

早期的解析仅仅实用eval() ,可是这货太easy给注入恶意代码…之后就有人写了个JSON2.js来让低级浏览器支持JSON

ES5開始,就出现了对应的规范来和函数处理JSON对象[stringify()和parse()];

值得一提的是:
1. 每一个属性名都必须用双引號或单引號,否则会抛出异常!!!
2. JSON数组的格式为字面量格式
3. 每一个值键对后面若是还有值键对,应该以逗号隔开

  • stringify() : 把javascript对象序列化为字符串
var person = {"name" :"CRPER","age" : 24,"Interesting" :['reading','play']
}var person_str = JSON.stringify(person);   //这一步就是把JSON对象转为对应的字符串console.log(person_str);   //打印值 : {"name":"CRPER","age":24,"Interesting":["reading","play"]}
console.log(typeof person_str);   //打印值: "string"/*过滤:第二个參数(riviver)支持传入一个数组或者一个函数来过滤整个json对象不须要的属性和值默认须要返回自身value[就是条件不成立的时候]
*/
var person1 = JSON.stringify(person,["age","Interesting"]);
console.log(person1);  //打印值:{"age":24,"Interesting":["reading","play"]}var person2 = JSON.stringify(person,function(key,value){switch(key){case "name" :return  value + "LIN";case "age":return  parseInt(value) + 1;default : return value;}
})console.log(person2);   //打印值: "{"name":"CRPERLIN","age":25,"Interesting":["reading","play"]}"var person2 = JSON.stringify(person,function(key,value){if(key == "name"){return "LIN" + value;}else if(key == "age"){return 10+value;}else{return value}
})console.log(person2);  //打印值: "{"name":"LINCRPER","age":34,"Interesting":["reading","play"]}"/*缩进:第三个參数是控制缩进的,最大的缩进为10个字符*/
var person3 = JSON.stringify(person,null,4);console.log(person3);
/*
"{"name": "CRPER","age": 24,"Interesting": ["reading","play"]
}"
*//*toJSON方法,函数过滤器的补充;1. 若对象内有toJSON,则优先运行,无则返回自身;2. 若作为第二个參数传入,则对函数进行过滤
*/var book = {"title" : "JS大神进阶记","page_total":999,"money":99,"copyright":"CRPER",toJSON:function(){return this.title;}
}var test = JSON.stringify(book);
console.log(test);      //打印值:""JS大神进阶记""var test2 = JSON.stringify(book,function(key,value){console.log(value) ;   //JS大神进阶记});
  • parse(): 把符合规范的字符串转为对象
    //接着上面的样例;var parseJSON = JSON.parse(person_str);     //把符合书写规范的字符串转为对象console.log(parseJSON);    //打印值:  Object {name: "CRPER", age: 24, Interesting: Array[2]}

总结

JSON的值能够表现为这么多种:
1. string
2. number
3. object
4. array
5. true
6. false
7. null

javascript跳跃式前进(3) - 跳入JSON相关推荐

  1. ajax走到error_jQuery中ajax 跳入error的原因总结

    一个标准的jquery的ajax代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2": ...

  2. JavaScript学习(六十一)—json字符串的解析和JS 对象的序列化

    JavaScript学习(六十一)-json字符串的解析和JS 对象的序列化 一.json字符串的解析:parse方法 将json字符串转换为js对象,我们把这个过程称为json字符串的解析 格式:J ...

  3. 2022-01-19:青蛙过河。 一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。 给你石子的位置列

    2022-01-19:青蛙过河. 一只青蛙想要过河. 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有). 青蛙可以跳上石子,但是不可以跳入水中. 给你石子的位置列 ...

  4. 基于QT的【第一个项目】设计+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作

    基于QT的第一个项目+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作 第一阶段 网络编程局域网TCP/IP聊天QT实现 main.c ma ...

  5. 自定义launcher预置widget无法跳入app,显示无法添加微件问题

    1.将widget预置到launcher首页的布局中去,每一个widget都要进行如下操作,bindAppWidgetIdIfAllowed不可缺少. int appWidgetId = appWid ...

  6. java单步跳入单步跳过_Eclipse 单步调试

    进入debug模式,设置断点,然后运行程序到断点 [1]快捷键(F8)直接执行程序. [2]快捷键(F5)单步执行程序,遇到方法时进入. [3]快捷键(F6)单步执行程序,遇到方法时跳过. [4]快捷 ...

  7. STM32跳入HardFault Handler中断分析

    为什么80%的码农都做不了架构师?>>>    ARM芯片STM32出现HardFault Handler硬件中断一般有两种情况: 访问越界导致的Acess Violation或者内 ...

  8. debug - UITextField 输入完跳入下一field,按钮变化

    textField .h 里创建对象 @interface ***Controller : UIViewController { UITextField *phoneNumber; UITextFie ...

  9. 女研究生因压力大欲跳海轻生 民警跳入冰冷海水中救人

    图为救援现场 舟山公安供图 摄 图为救援现场 舟山公安供图 摄 中新网舟山1月18日电(记者 李佳赟 通讯员 支奕 林昉哲)一名年轻女子欲跳海轻生,生死一瞬间,浙江省舟山市嵊泗县公安局菜园派出所民警毅 ...

最新文章

  1. 人脸检测库libfacedetection介绍
  2. csgo国服文件转国际服务器,csgo国际服怎么转国服 csgo国际服转到国服方法介绍...
  3. 动态网页中隐藏url参数传递的方法
  4. leetcode1319. 连通网络的操作次数(并查集)
  5. 【编辑器】VSCode+TEXLIVE环境配置,以SJTUthesis为测试用例
  6. MongoDB实战-面向文档的数据(找到最合适的数据建模方式)
  7. ADSL与路由器密码大全及设置
  8. 【RQNOJ86】智捅马蜂窝【最短路】
  9. Ext applyTo和renderTo的区别和用法
  10. QSS设置字体透明度
  11. 计算机应用基础精品课程申报表,“大学计算机基础”校级精品课程组积极申报2020年山西省精品共享课程...
  12. Java将汉字数字日期转换为数字日期(例如: 二〇二〇年十一月二十一日 → 2020年11月21日)
  13. 用爬虫抓取新浪微博粉丝
  14. 纯CSS实现四种方式文本反差色效果
  15. 阿里图标字体库的动态使用Android
  16. 全文检索系统技术架构及流程说明
  17. 伊犁哈萨克自治州谷歌高清卫星地图下载
  18. axure中交互样式设置鼠标悬停后其他的按下选中无效_Axure交互动作
  19. 聊一聊前端图片懒加载背后的故事
  20. HCIP第十三天笔记

热门文章

  1. 20200605笔记
  2. Linux下修复修改profile文件导致命令不用可的解决方法
  3. Object:window_方法
  4. ajax点赞只能点一次,php+mysql+ajax局部刷新点赞取消点赞功能(每个账号只点赞一次).pdf...
  5. 如何确认mongodb数据插入是否成功_go连接mongodb
  6. sqlserver 获取当前年_CVE-2020-0618: 微软 SQL Server 远程代码执行漏洞通告
  7. 申请鸿蒙选择应用程序是什么,申请鸿蒙系统有一个应用选择怎么选择呢
  8. android ui秘笈,看图说话 – Android UI 设计秘笈 :Part I
  9. python select模块安装_python+selenium select下拉选择框定位处理方法
  10. github php面试题,GitHub - johnsong261510/php_interviews: PHP 面试题汇总、剑指 Offer PHP 代码实现版本...