javascript跳跃式前进(3) - 跳入JSON
2016-04-06 15:42
585 查看
前言
JSON崛起不是意外,是顺应时代;相当简洁小巧的书写模式及阅读方式;
基础
看这篇文章: JSON知识点汇总_W3SCHOOL初步进阶
早期的解析只有用eval() ,但是这货太容易给注入恶意代码…之后就有人写了个JSON2.js来让低级浏览器支持JSONES5开始,就出现了相应的规范来和函数处理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
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- XML 与 JSON 优劣对比
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解