📜  json.parse 做了什么 - Javascript (1)

📅  最后修改于: 2023-12-03 15:17:04.757000             🧑  作者: Mango

json.parse 做了什么 - Javascript

在 Javascript 中,JSON.parse 是一个非常常用的方法,用于将字符串转换为 JavaScript 对象。在本文中,我们将讨论 JSON.parse 方法做了什么。

语法

JSON.parse 的语法如下:

JSON.parse(text[, reviver])

其中 text 是要进行解析的 JSON 字符串,reviver 是一个可选的函数,用于在解析过程中转换解析后的对象。

做了什么

JSON.parse 的具体实现可以分为两个步骤:解析和构建。

1. 解析

首先,JSON.parse 将接收到的字符串解析为 JSON 实例。解析过程是一个递归的过程,JSON 字符串由括号、数组、对象、字符串、数字、false、true 和 null 等构成。

例如,对于以下 JSON 字符串:

'{"name":"John","age":30,"city":"New York"}'

JSON.parse 的解析过程将首先读取开头的大括号 {,并将其解释为一个对象的开始,在解析过程中读取键值对的名称和值,以及逗号分隔符和末尾的大括号 }。如果到达末尾仍然没有正确地解析字符串,JSON.parse 将引发一个语法错误。

2. 构建对象

在解析了JSON后,JSON.parse 将使用解析得到的数据构造出 JavaScript 对象。构建对象的过程包括创建实例和将解析的键值对赋给对象的属性。对于 JSON 对象中的每个属性,将使用该属性名称作为 JavaScript 对象的属性名称,并将该属性值赋给该属性。

最后,如果定义了 reviver 函数,则对解析后的对象执行 reviver 函数。Reviver 函数有两个参数:属性名称和属性值。可以使用 reviver 函数修改属性值,或删除该属性。reviver 函数应该返回修改后的属性值或删除整个属性的 undefined 值。

示例

下面是一个使用 JSON.parse 解析 JSON 对象的示例:

const jsonStr = '{"name":"John","age":30,"city":"New York"}';

const obj = JSON.parse(jsonStr);

console.log(obj); // { name: "John", age: 30, city: "New York" }

在这个示例中,我们使用 JSON.parse 将 "jsonStr" 字符串转换为 JavaScript 对象。最终结果是将 JSON 字符串解析为 JavaScript 对象:

{ name: "John", age: 30, city: "New York" }
结论

到此为止,我们已经看到 JSON.parse 做了什么。该方法需要两个步骤来解析JSON字符串并将其转换为JavaScript对象。了解这些步骤对于理解JavaScript中的JSON解析器是如何工作的非常有用。

参考链接:MDN