JSON.stringify 和 JSON.parse
1. JSON.stringify
JSON.stringify 方法将一个 JavaScript 对象或数组转换为 JSON 字符串。
基本用法
const obj = { name: "Alice", age: 25 };
const jsonString = JSON.stringify(obj);
console.log(jsonString); // 输出: {"name":"Alice","age":25}
参数
value: 要转换的对象或数组。
replacer (可选): 一个函数或数组,用于控制哪些属性会被序列化到字符串中。
space (可选): 用于控制缩进的字符串或数字,使输出更易读。
使用 replacer 函数
const obj = { name: "Alice", age: 25, city: "New York" };
const jsonString = JSON.stringify(obj, function(key, value) {if (key === 'city') return undefined; // 排除 city 属性return value;
});
console.log(jsonString); // 输出: {"name":"Alice","age":25}
使用 space 参数
javascript
const obj = { name: "Alice", age: 25 };
const jsonString = JSON.stringify(obj, null, 2);
console.log(jsonString);
// 输出:
// {
// "name": "Alice",
// "age": 25
// }
2. JSON.parse
JSON.parse 方法将一个 JSON 字符串解析为 JavaScript 对象或数组。
基本用法
const jsonString = '{"name":"Alice","age":25}';
const obj = JSON.parse(jsonString);
console.log(obj); // 输出: { name: 'Alice', age: 25 }
参数
text: 要解析的 JSON 字符串。
reviver (可选): 一个函数,用于在返回之前对每个键值对进行处理。
使用 reviver 函数
const jsonString = '{"name":"Alice","age":25,"birthDate":"1998-03-14"}';
const obj = JSON.parse(jsonString, function(key, value) {if (key === 'birthDate') return new Date(value); // 将 birthDate 转换为日期对象return value;
});
console.log(obj.birthDate instanceof Date); // 输出: true
总结
JSON.stringify 用于将 JavaScript 对象或数组转换为 JSON 字符串。
JSON.parse 用于将 JSON 字符串解析为 JavaScript 对象或数组。
这两个方法都支持额外的参数来定制其行为,如 replacer 和 reviver 函数,以及 space 参数。