JSON.parse() 和 JSON.stringify() 是 JavaScript 中用于处理 JSON 数据的两个常用方法。它们分别用于将 JSON 字符串转换为 JavaScript 对象,以及将 JavaScript 对象转换为 JSON 字符串。
JSON.parse()
JSON.parse() 方法用于将 JSON 字符串转换为 JavaScript 对象。其语法如下:
JSON.parse(text[, reviver])
参数:
- text:必需。一个合法的 JSON 字符串,表示要解析的 JSON 数据。
- reviver:可选。一个转换函数,用于对解析生成的 JavaScript 对象进行处理。函数接受两个参数:键(key)和值(value)。
示例:
const jsonString = '{"name": "John", "age": 30, "city": "New York"}';
const jsonObject = JSON.parse(jsonString);
console.log(jsonObject); // 输出:{ name: 'John', age: 30, city: 'New York' }
JSON.stringify()
JSON.stringify() 方法用于将 JavaScript 对象转换为 JSON 字符串。其语法如下:
JSON.stringify(value[, replacer[, space]])
参数:
- value:必需。要转换为 JSON 字符串的 JavaScript 对象。
- replacer:可选。一个函数或数组,用于过滤或处理要序列化的对象的属性。如果是函数,它接受两个参数:键(key)和值(value)。如果是数组,它应该包含一个字符串数组,表示要序列化的属性名称。
- space:可选。一个数字或字符串,用于控制缩进。如果是数字,表示空格的数量;如果是字符串,表示用于缩进的字符(最多 10 个字符)。
示例:
const jsonObject = { name: "John", age: 30, city: "New York" };
const jsonString = JSON.stringify(jsonObject);
console.log(jsonString); // 输出:'{"name":"John","age":30,"city":"New York"}'
const jsonStringPretty = JSON.stringify(jsonObject, null, 2); // 添加缩进
console.log(jsonStringPretty);
// 输出:
// {
// "name": "John",
// "age": 30,
// "city": "New York"
// }
通过使用 JSON.parse() 和 JSON.stringify(),可以轻松地在 JSON 字符串和 JavaScript 对象之间进行转换。