JavaScript Object Notation
JSON 是一种用来序列化对象、数组、数值、字符串、布尔值和 null 的语法。它基于 JavaScript 语法,但是又有区别:一些 JavaScript 值不是 JSON,而某些 JSON 不是 JavaScript 值。
JSON对象包含了两个主要方法,一个方法用来将JavaScript值转换为JavaScript Object Notation (JSON)格式的字符串,另外一个方法用来将JSON字符串转换为JavaScript值。
方法
JSON.parse(text[, reviver])
解析JSON字符串,把JSON格式的字符串解析成JSON对象,也可以选择改变前面解析后的值及其属性,然后返回解析的值。
eg:使用JSON.parse()
JSON.parse('{}'); // {}
JSON.parse('true'); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null'); // null
eg:使用 reviver 函数
JSON.parse('{"p": 5}', function (k, v) {
if(k === '') return v; // 如果到了最顶层,则直接返回属性值,
return v * 2; // 否则将属性值变为原来的 2 倍。
}); // { p: 10 }
注意:如果传给JSON.parse()的字符串不是有效的JSON,该方法会抛出错误;
该方法不允许逗号结尾。
// both will throw a SyntaxError
JSON.parse("[1, 2, 3, 4, ]");
JSON.parse('{"foo" : 1, }');
JSON.stringify(value[, replacer [, space]])
返回指定值的 JSON 字符串,可以自定义只包含某些特定的属性或替换属性值。
默认情况下,JSON.stringify()输出的JSON字符串不包含任何空字符或缩进。
在序列化JavaScript对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为undefined的任何属性也都会被跳过。结果中最终都是值为有效JSON数据类型的实例属性。
转载请注明带链来源:春语精椿