JavaScript基础——JSON
来源:互联网 发布:扣扣闪图制作软件 编辑:程序博客网 时间:2024/05/16 13:52
JSON是一个轻量级的数据格式,可以简化表示复杂数据结构的工程量。
JSON使用JavaScript语法的子集表示对象、数组、字符串、数组、布尔值和null。
即使XML也能表示同样复杂的数据结果,但JSON没有那么繁琐,而且在JavaScript中使用更便利。
ECMAScript5定义了一个原生的JSON对象,可以用来将对象序列化微JSON字符串或者将JSON数据解析为JavaScript对象。JSON.stringify()和JSON.parse()方法分别用来实现上述两项功能。这两个方法都有一些选项,通过它们可以改变过滤的方式,或者改变序列化的过程。
原生的JSON对象也得到了很多浏览器的支持,比如IE8+、Firefox3.5+、Safari4+、Opera10.5和Chrome.
/** * JSON */function cl(x){ console.log(x);}/** * 20.1 语法 *///20.1.1 简单值//JSON字符串与JavaScript字符串的最大区别是:// JSON字符串必须使用双引号//20.1.2 对象//JSON没有声明变量,对象的属性必须加双引号/*{ "name":"Jason", "age":26, "school":{ "name":"FuDan College", "location":"ShangHai,China" }} *///20.1.3 数组/*[{ "name":"Jason", "age":26, "school":{"name":"FuDan College", "location":"ShangHai,China"}}, { "name":"Alex", "age":23, "school":{"name":"FuDan College", "location":"ShangHai,China"} }] *//** * 20.2 解析与序列化 *///20.2.1 JSON对象//JSON对象有两个方法:stringify()和parse()var book={ title:"JavaScript book", authors:["Jason Zhou"], edition:3, year:2013};//将JavaScript对象序列化为JSON字符串var jsonText1=JSON.stringify(book);cl(jsonText1);//=>{"title":"JavaScript book","authors":["Jason Zhou"],"edition":3,"year":2013}//将JSON字符串解析为原生JavaScript值var bookCopy=JSON.parse(jsonText1);cl(bookCopy);//=>Object {title: "JavaScript book", authors: Array[1], edition: 3, year: 2013}//20.2.2 序列化选项//20.2.2.1 过滤结果var jsonText2=JSON.stringify(book,["title","edition"]);cl(jsonText2);//=>{"title":"JavaScript book","edition":3}var jsonText3=JSON.stringify(book,function(key,value){ switch (key){ case "authors": return value.join(","); case "year": return 5000; case "edition": return undefined; default : return value; }});cl(jsonText3);//=>{"title":"JavaScript book","authors":"Jason Zhou","year":5000}//20.2.2.2 字符串缩进var jsonText4=JSON.stringify(book,null,4);cl(jsonText4);//=> /* { "title": "JavaScript book", "authors": [ "Jason Zhou" ], "edition": 3, "year": 2013 }*/var jsonText5=JSON.stringify(book,null,"--");cl(jsonText5);//=>/* { --"title": "JavaScript book", --"authors": [ ----"Jason Zhou" --], --"edition": 3, --"year": 2013 } *///20.2.2.3 toJSON()方法//可以为任何对象添加toJSON()方法var newBook={ title:"JavaScript book", authors:["Jason Zhou"], edition:3, year:2013, toJSON:function(){ return this.title; }};var jsonText6=JSON.stringify(newBook);cl(jsonText6);//=>"JavaScript book"//另外要注意序列化对象的执行顺序:toJSON->过滤器->序列化->格式化//20.2.3 解析选项var newBook2={ title:"JavaScript book", authors:["Jason Zhou"], edition:3, year:2013, releaseDate:new Date(2013,11,22)};var jsonText7=JSON.stringify(newBook2);var newBook2Copy=JSON.parse(jsonText7,function(key,value){ if(key=="releaseDate"){ return new Date(value); }else{ return value; }});cl(newBook2Copy.releaseDate.getFullYear()); //=>2013
0 0
- JavaScript基础——JSON
- JavaScript基础——JSON对象
- JavaScript基础-JSON
- JavaScript基础之JSON
- JavaScript—Json.stringify()
- Javascript—Json
- Javascript基础——运算符、流程控制(循环、判断、真假、三元运算符)、Json
- JS基础——JSON
- JavaScript基础—对象
- day12—JavaScript基础
- javaScript基础—imooc
- javascript基础—keycode
- JSON学习(二)——JavaScript操作JSON
- JavaScript之——JSON总结
- JSON开发笔记(一)—— JSON基础
- Javascript基础——详解Javascript对象
- 【JavaScript】(6)——JavaScript与XPath、JSON交互
- JavaScript基础——事件(基础)
- XCOJ 1200
- 在Android项目中支持emoji
- 精彩文章
- linux_grub引导修复
- javascript中的this到底是神马
- JavaScript基础——JSON
- java Executors介绍
- iOS开发实践之UIWebView
- 设计模式六大原则
- C#学习笔记(二)变量
- Fragment android碎片化管理
- 链表之单链表约瑟夫问题(一)
- 自定义shape
- NSMutableString 使用