JavaScript JSON.stringify() 方法用于将 JavaScript 值(例如对象或数组)转换为 JSON 字符串。使用此方法时,您可以选择包含一个名为 replacer 的可选参数,该参数可以指定为函数。
如果提供 replacer 函数,则允许修改要字符串化的值。此外,通过从 replacer 函数返回不同的值,您可以自定义生成的 JSON 字符串的输出。
语法
以下是 JavaScript JSON.stringify() 方法的语法 -
JSON.stringify(value, replacer, space)
参数
此方法接受名为 'value'、'replacer' 和 'space' 的三个参数,如下所述 -
参数 | 描述 |
---|---|
value | 要转换为 JSON 字符串的值。 |
replacer(可选) | 修改字符串化过程的函数,或指定要包含在输出中的属性的字符串和数字数组。如果 'replacer' 是一个数组,则忽略非字符串和非数字元素(包括符号)。如果 'replacer' 不是函数或数组(例如,null 或未提供),则对象的所有字符串键属性都包含在生成的 JSON 字符串中。 |
space(可选) | 字符串或数字用于将空格(缩进、换行符等)插入到输出 JSON 字符串中,以提高可读性。 |
返回值
此方法返回一个表示给定值的 JSON 字符串,即 'undefined'。
示例 1
如果我们只将 value 参数传递给此方法,它会将此 JavaScript 值转换为 JSON 字符串。
在以下示例中,我们使用 JavaScript JSON.stringify() 方法将此 JavaScript 值 {a: 10, b: 20, c: 30, d: 40, e: 50} 转换为 JSON 字符串。
<html>
<head>
<title>JavaScript JSON.stringify()方法</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 字符串
转换为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”} 转换为带有 3 个缩进空格的格式化 JSON 字符串,以提高可读性。
const value = {"name": "Rahul", "age": 22, "city": "Lucknow"};
console.log("给定值 ", value.name, " ", value.age, " ", value.city);
const space = 3;
console.log("空格数量: ", space);
// 使用JSON.stringify()方法
const json_string = JSON.stringify(value, null, space);
console.log(json_string);
输出
执行完上述程序后,会在控制台返回一个带有 3 个缩进的 JSON 字符串(更改只能在控制台看到)。
空格数量 3
{
"name": "Rahul",
"age": 22,
"city": "Lucknow"
}
示例 3
如果我们将 replacer(作为函数)作为参数传递给此方法,它将修改字符串化过程。
在下面的示例中,我们使用 JSON.stringify() 方法将 JavaScript 值转换为 JSON 字符串。我们定义了一个名为 modifyAge() 的 replacer 函数,该函数将每条记录的 age 增加 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("JavaScript值(转换前): ", JSON.stringify(value), " ");
let space = 5;
console.log("空格数量:", space);
// 使用 JSON.stringify() 方法
const jsonString = JSON.stringify(value, modifyAge, space);
console.log("JSON字符串(转换后):");
console.log(jsonString);
输出
执行上述程序后,它将返回一个 JSON 字符串(修改了 age)。
空格数量: 5
JSON字符串(转换后):
[
{
"name": "Rahul",
"age": 27,
"city": "Lucknow"
},
{
"name": "Vikash",
"age": 25,
"city": "Hyderabad"
}
]