📜  与 stringify 相对的 json - Javascript (1)

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

相对于 stringify 的 JSON - JavaScript

JSON 是一种基于文本的数据交换格式,由 JavaScript 对象表示。它广泛用于 Web 应用中处理数据交换。其中,stringify 方法可以将 JavaScript 对象或值转换为 JSON 字符串,以便于传输或进行本地存储。但是,JSON 还有另一种相对于 stringify 更“强大”的使用方式,它是通过 JavaScript 中提供的一些方法或语法实现的。

对象字面量

JSON 对象字面量是一种快捷方式,它将包含属性和值的对象直接写成一个 JSON 形式的字面量。如果想要在 JavaScript 中创建一个对象,可以使用下面的语法:

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

这将创建一个具有三个属性的对象。这是由 JavaScript 引擎自动将对象字面量转换为 JSON 的结果。也就是说,JSON 对象字面量可以用于创建 JSON 数据。

JSON.parse

parse 方法是 JSON 中的另一个内置方法,它可用于将 JSON 字符串转换为 JavaScript 对象。如果想要使用JSON.parse将一个 JSON 字符串解析为一个对象,可以使用下面的方法:

const jsonStr = '{"name":"John", "age":30, "city":"New York"}';
const obj = JSON.parse(jsonStr);

console.log(obj.name); //Output: John

这将输出对象的 name 属性(即“John”)。

JSON.stringify

stringify 方法可以将 JavaScript 对象序列化为 JSON 字符串。如果想要将一个对象转换为 JSON 字符串,则可以使用以下方法:

const obj = { name: "John", age: 30, city: "New York" };
const jsonStr = JSON.stringify(obj);

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

这将输出 JSON 字符串(即{"name":"John","age":30,"city":"New York"})。

JSON. stringify 和 parse 的兼容性

JSON 对象上添加了 stringify 和 parse 方法的功能,那么这两种方法能兼容所有的主流浏览器吗?

以下是 JSON.stringify 和 JSON.parse 的浏览器支持情况:

JSON.stringify 和 JSON.parse 的浏览器兼容性

考虑到浏览器的兼容性,可以使用如下方法:

const obj = { name: "John", age: 30, city: "New York" };
const jsonStr = JSON.stringify(obj);

const newObj = JSON.parse(jsonStr) || {};
console.log(newObj.name) // Output: John

这将创建一个新的 newObj 对象,在解析 JSON 时检查其是否是一个有效的 JSON 字符串。如果它不是有效的 JSON 字符串,newObj 将为空对象。否则,newObj 将具有相同值的属性作为 obj 对象。

这就是 JSON 和其相关方法的一些用法和特点。无论是用于客户端还是服务器端 JavaScript 编程,JSON 都提供了一种简单直观的方式来处理数据。尽管有些使用方法比较小众,了解它们可以让编程变得越来越简单。