JavaScript - JSON.stringify() 方法
JavaScript JSON.stringify() 方法用于将 JavaScript 值(例如对象或数组)转换为 JSON 字符串。使用此方法时,您可以选择包含一个名为 replacer 的可选参数,该参数可以指定为函数。
如果您提供 replacer 函数,它允许您修改被字符串化的值。此外,通过从 replacer 函数返回不同的值,您可以自定义生成的 JSON 字符串的输出。
JSON.stringify() 方法是 JavaScript 中的静态方法,这意味着您可以始终将其用作 JSON.stringify(),而无需创建对象实例来调用它。
语法
以下是 JavaScript JSON.stringify() 方法的语法 -
JSON.stringify(value, replacer, space)
参数
此方法接受三个名为"value"、"replacer"和"space"的参数,如下所述 -
value - 您想要转换为 JSON 的值字符串。
replacer(可选) − 修改字符串化过程的函数,或用于指定输出中包含的属性的字符串和数字数组。如果"replacer"是数组,则非字符串和非数字元素(包括符号)将被忽略。如果"replacer"不是函数或数组(例如,为 null 或未提供),则对象的所有字符串键属性都将包含在生成的 JSON 字符串中。
space(可选) - 使用字符串或数字在输出 JSON 字符串中插入空格(缩进、换行符等),以提高可读性。
返回值
此方法返回表示给定值或"undefined"的 JSON 字符串。
示例
示例 1
如果我们仅向此方法传递一个 value 参数,它会将此 JavaScript 值转换为 JSON 字符串。
在下面的示例中,我们使用 JavaScript JSON.stringify() 方法将此 JavaScript 值转换为 {a: 10, b: 20, c: 30, d: 40, e: 50{101}/b> 转换为 JSON 字符串。
<html>
<head>
<title>JavaScript JSON.stringify() Method</title>
</head>
<body>
<script>
const value = {a: 10, b: 20, c: 30, d: 40, e: 50};
document.write("给定值: ", value.a, value.b, value.c, value.d, value.e);
document.write("<br>转换为 JSON 字符串: ", JSON.stringify(value));
</script>
</body>
</html>
输出
上述程序将 JavaScript 值转换为 JSON 字符串后返回 -
给定值:1020304050
转换为 JSON 字符串后:{"a":10,"b":20,"c":30,"d":40,"e":50}
示例 2
如果我们传递 value 和 space 参数给此方法,它会将值转换为 JSON 字符串,并在每个字符前添加指定数量的缩进。
以下是 JavaScript JSON.stringify() 方法的另一个示例。我们使用此方法将 JavaScript 值 {"name": "Rahul", "age": 22, "city": "Lucknow"> 转换为格式化的 JSON 字符串,并使用 3 个空格进行缩进,以提高可读性。
const value = {"name": "Rahul", "age": 22, "city": "Lucknow"};
console.log("The given value: ", value.name, " ", value.age, " ", value.city);
const space = 3;
console.log("Number of spaces: ", space);
//使用 JSON.stringify() 方法
const json_string = JSON.stringify(value, null, space);
console.log(json_string);
输出
执行上述程序后,它将在控制台中返回一个带有 3, 个缩进的 JSON 字符串(更改只能在控制台中看到)。
The given value: Rahul 22 Lucknow
Number of spaces: 3
{
"name": "Rahul",
"age": 22,
"city": "Lucknow"
}
示例 3
如果我们将 replacer(作为函数)作为参数传递给此方法,它将修改字符串化过程。
在下面的示例中,我们使用 JSON.stringify() 方法将 JavaScript 值转换为 JSON 字符串。我们定义了一个名为 modifyAge() 的替换函数,它将每条记录的年龄增加 5。我们将此函数作为参数传递给该方法,以便在返回结果之前对其进行修改。
//自定义替换函数
function modifyAge(key, value){
if(key === "age"){
return value+5;
} else {
return value;
}
}
const value = [{"name": "Rahul", "age": 22, "city": "Lucknow"}, {"name": "Vikash", "age": 20, "city": "Hyderabad"}];
console.log("The JavaScript value (before converting): ", JSON.stringify(value), " ");
let space = 5;
console.log("The number space: ", space);
//使用 JSON.stringify() 方法
const jsonString = JSON.stringify(value, modifyAge, space);
console.log("The JSON string (after converting): ");
console.log(jsonString);
输出
上述程序执行后,将返回一个 JSON 字符串(修改后的年龄)。
The JavaScript value (before converting): [{"name":"Rahul","age":22,"city":"Lucknow"},{"name":"Vikash","age":20,"city":"Hyderabad"}]
The number space: 5
The JSON string (after converting):
[
{
"name": "Rahul",
"age": 27,
"city": "Lucknow"
},
{
"name": "Vikash",
"age": 25,
"city": "Hyderabad"
}
]

