JSON.stringify
是一个将 JavaScript 对象转换为 JSON 字符串的方法,它有三个参数:
JSON.stringify(value, replacer, space)
参数详解
-
value
(必需):- 这是你想要转换为 JSON 字符串的 JavaScript 对象或数组。
- 例如:
JSON.stringify({ name: "Alice", age: 25 })
。
-
replacer
(可选):- 这个参数可以是一个函数或数组,用来选择或改变对象属性的字符串化过程。
- 如果是一个函数,它将在每个键值对上调用,可以用来筛选或改变值。
- 如果是一个数组,它指定哪些属性应该包含在最终的 JSON 字符串中。
- 如果省略此参数,则将对对象的所有属性进行字符串化。
-
示例:
- 函数形式
JSON.stringify({ name: "Alice", age: 25 }, (key, value) => {if (typeof value === 'number') {return undefined; // 过滤掉数值型属性}return value;
});
// 输出: {"name":"Alice"}
2. 数组形式
JSON.stringify({ name: "Alice", age: 25, gender: "female" },["name", "gender"]);
// 输出: {"name":"Alice","gender":"female"}
3.space
(可选):
- 这个参数用于控制输出的 JSON 字符串的缩进,主要用于格式化输出,使其更易读。
- 如果传递一个数字(如 2),每一层嵌套将缩进相应数量的空格。
- 如果传递一个字符串(如
"\t"
),将使用该字符串作为缩进。 - 如果为
null
或者省略,输出的 JSON 字符串将是没有任何缩进或换行的紧凑形式。
示例:
- 数字形式
JSON.stringify({ name: "Alice", age: 25 }, null, 2);
· 字符串形式
JSON.stringify({ name: "Alice", age: 25 }, null, "\t");
JSON.parse
是一个将 JSON 字符串转换为 JavaScript 对象的方法。它有两个参数:
JSON.parse(text, reviver)
参数详解
-
text
(必需):- 这是一个有效的 JSON 字符串,需要被解析成 JavaScript 对象。
- JSON 字符串必须使用双引号
"
包围键和字符串值,并且必须是有效的 JSON 格式,否则会抛出SyntaxError
异常。 - 例如:
'{"name": "Alice", "age": 25}'
是一个有效的 JSON 字符串。
-
reviver
(可选):- 这是一个可选的函数参数,可以用来逐个检查或转换解析后的对象的每个属性值。
- 如果提供了
reviver
函数,它会为对象的每个键值对调用,并且可以返回一个修改后的值,或者如果返回undefined
,则该属性将被从最终结果中删除。 reviver
函数接收两个参数:key
(当前属性的键)和value
(当前属性的值)。
示例:
const jsonString = '{"name": "Alice", "age": 25}';// 解析 JSON 字符串并使用 reviver 函数来过滤属性
const parsedObject = JSON.parse(jsonString, (key, value) => {if (typeof value === 'number') {return value * 2; // 将数值属性加倍}return value; // 返回原始值
});console.log(parsedObject);
// 输出: { name: "Alice", age: 50 }