JSON 方法,toJSON
JSON(JavaScript Object Notation)是表示值和对象的通用格式。在 RFC 4627 标准中有对其的描述。最初它是为 JavaScript 而创建的,但许多其他编程语言也有用于处理它的库。因此,当客户端使用 JavaScript 而服务器端是使用 Ruby/PHP/Java 等语言编写的时,使用 JSON 可以很容易地进行数据交换。
- JavaScript 提供了如下方法:
- JSON.stringify 将对象转换为 JSON。序列化成 json
- JSON.parse 解析 json。将 JSON 转换回对象。
- 这两种方法都支持用于智能读/写的转换函数。
- 如果一个对象具有 toJSON,那么它会被 JSON.stringify 调用。
- JSON.stringify:得到的 json 字符串是一个被称为 JSON 编码(JSON-encoded) 或 序列化(serialized) 或 字符串化(stringified) 或 编组化(marshalled) 的对象。我们现在已经准备好通过有线发送它或将其放入普通数据存储。
- 请注意,JSON 编码的对象与对象字面量有几个重要的区别:
- 字符串使用双引号。JSON 中没有单引号或反引号。所以 'John' 被转换为 "John"。
- 对象属性名称也是双引号的。这是强制性的。所以 age:30 被转换成 "age":30。
- JSON.stringify 也可以应用于原始(primitive)数据类型。JSON 支持以下数据类型:
- Objects { ... }
- Arrays [ ... ]
- Primitives:
- strings,
- numbers,
- boolean values true/false,
- null。
- JSON.stringify 的完整语法是:let json = JSON.stringify(value[, replacer, space])
- JSON.parse:解码 JSON 字符串
- let value = JSON.parse(str, [reviver]);
- str 要解析的 JSON 字符串。
- reviver 可选的函数 function(key,value),该函数将为每个 (key, value) 对调用,并可以对值进行转换。
遍历
let jsonString = '{"name": "Jack", "age": 30, "city": "New York"}';
let jsonObject = JSON.parse(jsonString);
let jsonArray = Object.entries(jsonObject); //[['name', 'Jack'], ['age', 30], ['city', 'New York']]
for (let [key, value] of jsonArray) {
console.log(`${key}: ${value}`);
}