JSON parse() - JSON解析

JSON parse()方法,顾名思义, 将 JSON 字符串表示形式反序列化为 JavaScript 对象.

JSON 字符串通常是从远程位置接收的(例如 API 响应),并且需要用于修改浏览器中的 UI.

parse() 方法采用从 API 响应接收到的 JSON 字符串,并将其转换为 JavaScript 对象.

parse()方法可以选择使用reviver 函数 在返回结果对象之前对其执行转换.

1. JSON.parse() 语法

JSON.parse() 方法的语法是:

JSON.parse(string[, reviver])

请注意,JSON 字符串是有效的 JSON 文档,否则您将收到语法错误.

1.1. 方法参数

  1. string – 序列化的 JSON 字符串.
  2. reviver – 一个可选函数,规定最初通过解析生成的值在返回之前如何进行转换.

1.2. 返回值

parse() 如果解析成功,该方法将返回 JavaScript 对象。返回值可以分配给一个变量,该变量允许稍后在整个程序中引用转换结果.

如果string不是有效的 JSON 文档,parse()则会出现 SyntaxError异常.

2. JSON.parse() 示例

var jsonString = '{ "x": 5, "y": 6 }';

var obj = JSON.parse( jsonString );

console.log(obj);

程序输出.

{x: 5, y: 6}

3. JSON.parse() Reviver 函数示例

为 JSON 文档字符串中的每个名称-值对调用 reviver 函数,在将名称-值对添加到结果 JavaScript 对象之前,我们可以应用自定义逻辑来查找和修改任何值.

在此程序中,我们检查每个值类型,如果该值是偶数,则将其乘以 2.

var obj = JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
	if(value % 2 == 0)
		return value * 2; //如果值是偶数,则乘以 2
	else
		return value; //否则返回原始值
});

程序输出.

{1: 1, 2: 4, 3: {4: 8, 5: {6: 12}}}

4. JSON.parse() 与 JSON 数组

parse()在 JSON 数组字符串上使用 时,该方法将返回 JavaScript 数组,而不是 JavaScript 对象.

var jsonArrayString = '["A", "B", "C"]';

var arrObject = JSON.parse( jsonArrayString );

console.log(arrObject);;

程序输出.

["A", "B", "C"]