JSON
概念
JSON是一种表示结构化数据的格式,它不局限也JavaScript的范畴,很多编程语言都有针对JSON的解析器和序列化器。
语法
JSON可以表示三种类型的值:
- 简单值:使用与Javascript相同的语法表示字符串、数值、布尔值和null,JSON不支持Javascript中的undefined。同时,字符串必须使用双引号,单引号会导致语法错误。
- 对象:与Javascript的对象字面量相比,JSON对象没有变量声明、没有末尾的分号、对象的属性必须加双引号。每个键值对的值可以是简单值,也可以是复杂数据类型的值。
- 数组:JSON数组采用的就是Javascript中数组字面量形式,但是JSON数组也没有变量和分号。
各种类型值举例
- 数字:5
- 字符串:"Hello world!"
- 布尔值:true
- null:null
- 对象:{ "name": "emi", "age": 21 }
- 数组:["emi", 21, "student", true]
解析与序列化
ECMAScript5定义了全局对象JSON,它有两个方法:stringify()和parse()。分别用于把Javascript对象序列化为JSON字符串和把JSON字符串解析为原生Javascript值。
stringify():
var emi = {
"name": "emiwang",
"age": 21,
"gender": "female"
};
var jsonText = JSON.stringify(emi);
该方法除了要序列化的Javascript对象外,还可以接受两个额外的参数,第一个是过滤函数或数组,第二个是用于控制结果中的缩进的空白符的数字或符号。
var jsonText = JSON.stringify(emi, ["name", "age"], 4);
parse():
var emiwang = JSON.parse(jsonText);
parse()方法也可以接受一个函数作为参数