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 字符串中,以提高可读性。

返回值

此方法返回一个表示给定值的 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 字符串

给定值::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”} 转换为带有 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 字符串(更改只能在控制台看到)。

给定值:  Rahul   22   Lucknow
空格数量  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)。

JavaScript值(转换前):  [{"name":"Rahul","age":22,"city":"Lucknow"},{"name":"Vikash","age":20,"city":"Hyderabad"}]  
空格数量:  5
JSON字符串(转换后):
[
   {
      "name": "Rahul",
      "age": 27,
      "city": "Lucknow"
   },
   {
      "name": "Vikash",
      "age": 25,
      "city": "Hyderabad"
   }
]