JSON
JSON(JavaScript Object Notation)是替代XML的一种标准。它是一个通用的数据格式。
语法
JSON语法支持3中类型
- 简单值:null、number、boolean、string。注意undefined不是。
- 对象:表示有序的键值对。
- 数组:表示可以通过数值索引访问的值的有序列表。
注意事项
- JSON和JavaScript中的区别。JSON中的
key
要使用引号引起来,JavaScript中可以不使用。 - JSON对象最后一个属性值后面没有逗号,JSON数组最后一个值后面没有逗号
JSON对象的解析与序列化
stringify()
JSON.stringify()
把一个JavaScript对象序列化为一个JSON字符串,保存到一个字符串中。
语法:
JSON.stringify(JavaScript对象, 过滤器, 缩进值)
- JavaScript对象:即将要序列化的JavaScript对象
- 过滤器:可以是一个数组或一个函数。返回数组中包含的key或函数设置返回值;函数返回
undefined
表示省略这个值。 - 缩进值:控制缩进和空格。
注意事项
1、JavaScript对象中的值为undefined的时候,序列化后会省略。
2、JavaScript对象序列化后,所有的函数和原型都会忽略。
function createCompareFunction(property) {
return function(obj1, obj2) {
let value1 = obj1[property];
let value2 = obj2[property];
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
}
}
let a = {
a: "a",
b: "b",
func: createCompareFunction,
un: undefined
}
console.log(JSON.stringify(a)) // {"a":"a","b":"b"}
parse()
JSON.parse()
把一个JSON字符串解析为一个JavaScript对象。
语法
JSON.parse(JSON字符串, 还原函数)
- JSON字符串:将要解析的JSON字符串。
- 还原函数:接收两个参数,一个表示key,一个表示value。如果返回undefined,则删除;否则就添加到结构中。
第二个参数常用于将Date字符串转换为Date对象。
let str = '{"a":"a","b":"b"}';
let json = JSON.parse(str);
console.dir(json)