前言
JSON . stringify() 方法是将一个 JavaScript 值 ( 对象或者数组 ) 转换为一个 JSON 字符串 , JSON . parse() 方法用来解析 JSON 字符串,构造由字符串描述的 JavaScript 值或对象。
数组、对象 => JSON 字符串
JSON . stringify() 方法是将一个 JavaScript 值 ( 对象或者数组 ) 转换为一个 JSON 字符串。
语法
JSON.stringify(value , replacer , space)
参数
参数名 | 描述 |
---|---|
value | 将要序列化成 一个JSON 字符串的值 |
replacer [可选] | 如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为null或者未提供,则对象所有的属性都会被序列化; |
space [可选] | 指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格;如果该参数为字符串(字符串的前十个字母),该字符串将被作为空格;如果该参数没有提供(或者为null)将没有空格。 |
返回值
一个表示给定值的 JSON 字符串。
示例
JSON.stringify([1, "false", false]); // '[1,"false",false]' JSON.stringify({x: 5, y: 6}); // '{"x":5,"y":6}'
JSON 字符串 => 数组、对象
JSON . parse() 方法用来解析 JSON 字符串,构造由字符串描述的 JavaScript 值或对象。
语法
JSON.parse(text , reviver)
参数
参数名 | 描述 |
---|---|
text | 要被解析成JavaScript值的字符串 |
reviver | 如果是一个函数,则规定了原始值如何被解析改造,在被返回之前。 |
返回值
对应给定的 JSON 字符串,解析后的 JavaScript 值。
示例
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"] JSON.parse('{"x":5,"y":6}'); // {x: 5, y: 6}
若被解析的 JSON 字符串是非法的,则会抛出 一个语法错误 异常;
JSON . parse() 的 text 参数不允许用逗号作为结尾
// both will throw a SyntaxError JSON.parse("[1, 2, 3, 4, ]"); JSON.parse('{"foo" : 1, }');