JavaScript 中JSON.parse()和JSON.stringify()方法的区别
JavaScript 通过JSON的帮助,在从服务器发送数据到网页时可以存储和传输数据。 JSON(JavaScript对象表示法) 是一种独立于语言的轻量级数据交换格式,易于阅读和编写。JSON提供了不同的方法,可以将JS对象转换为字符串,或者将以JSON格式编写的JSON字符串解析为JavaScript对象。为此,使用JSON.parse()和JSON.stringify方法。在本文中,我们将看到JSON.parse()方法和JSON.stringify方法,以及它们的实现和区别。
JSON.stringify()方法 用于将JavaScript对象转换为JSON字符串。该方法只接受一个参数,该参数是要转换为JSON字符串的对象。它的工作方式与 JSON.parse() 方法相反。 JSON.stringify可以将replacer参数作为函数,我们可以在对象的键值对上编写逻辑。在从web服务器接收数据(例如node服务器)时,数据必须是字符串格式的,并且通过JSON.parse()解析数据后,数据变为对象。日期的格式在JSON中不允许,因此您可以将日期包含在字符串中。
示例: 此示例描述了JSON.stringify()方法的基本用法。
Javascript
const myInfo = {
Name: "GFG",
Age:22,
Department : "Computer Science and Engineering",
Year: "3rd"
}
const Obj = JSON.stringify(myInfo);
console.log(Obj)
解释 : 这里,变量 myInfo 包含一个具有4个属性的JavaScript对象: Name , Age , Department, 和 Year 。 JSON.stringify()方法 返回JSON字符串, 该字符串被存储在对象 Obj 中。
Output :
{"Name":"GFG","Age":22,"Department":"Computer Science and Engineering","Year":"3rd"}
JSON.parse() 方法 用于将 JSON 字符串转换为 JavaScript 对象。JavaScript 对象基本上是存储一些对应类的数据的存储器。它接受一个参数,即要解析的 JSON 字符串。注意,要解析的字符串必须用反引号 括起来,且所有单词必须用双引号括起来。在向 Web 服务器发送数据时,数据必须以字符串格式存在。它可用于将数据存储在浏览器的本地存储中,因为浏览器将数据存储在键值对中。
示例: 此示例描述了 JSON.parse() 方法的基本用法。
Javascript
const myInfo = `{
"Name": "GFG",
"Age":22,
"Department" : "Computer Science and Engineering",
"Year": "3rd"
}`
const Obj = JSON.parse(myInfo);
console.log(Obj.Name)
console.log(Obj.Age)
解释 :这里,变量 myInfo 存储了一个以对象形式的JSON字符串,其中包含Name、age、Department和Year这四个属性。我们使用JSON.parse()来解析该字符串,并将其转换为一个全新的对象。变量 obj 存储了这个解析后的对象,我们可以使用点操作符访问这些对象的属性。
输出 :
GFG
22
JSON.stringify()方法与JSON.parse()方法的区别:
JSON.stringify()方法 | JSON.parse()方法 |
---|---|
将JavaScript对象转换为JSON字符串。 | 将JSON字符串转换为JavaScript对象。 |
字符串必须用双引号包裹。例:”String”。 | 字符串不需要用双引号包裹。 |
在向Web服务器发送数据时,数据必须是字符串格式。 | 从Web服务器接收数据时,数据必须是字符串。 |
键必须是带有双引号的字符串。 | 键可以是任何类型,如字符串、数字或字符,但对象必须用引号包裹,即'{键: 值}’。 |
它可以接受2个额外的(可选的)参数,即value、replacer和space,例如JSON.stringify(value, replacer, space)。 | 它可以接受一个额外的(可选的)参数,即reviewer,例如JSON.parse(value, reviewer)。 |