📜  json.stringify 参数 - Javascript (1)

📅  最后修改于: 2023-12-03 15:02:26.203000             🧑  作者: Mango

使用 JSON.stringify 方法

在 JavaScript 中,JSON 是一种用于数据交换的标准格式,它是一个轻量级的文本格式,易于阅读和编写。如果您需要将 JavaScript 对象转换为 JSON 格式的字符串,那么可以使用 JSON.stringify() 方法。下面将介绍该方法的使用和参数。

语法
JSON.stringify(value[, replacer[, space]])
  • value:必选项。要转换成 JSON 格式字符串的值。
  • replacer:可选项。如果是函数,则用于转换对象的属性值。如果是数组,则仅编码指定的属性。
  • space:可选项。用于插入每个级别的缩进空格。如果是数字,则表示空格数;如果是字符串,则使用该字符串作为空格。
示例
const myObj = {
  name: "John",
  age: 30,
  city: "New York"
};

const myJSON = JSON.stringify(myObj);

console.log(myJSON);
// 输出:{"name":"John","age":30,"city":"New York"}

在此示例中,我们定义了一个名为 myObj 的 JavaScript 对象,并使用 JSON.stringify() 方法将其转换为 JSON 格式字符串。将结果打印到控制台上,您可以看到输出结果:{"name":"John","age":30,"city":"New York"}。

使用 replacer 参数

您可以使用 replacer 参数来选择要编码的属性,并控制编码过程中如何修改值。

const myObj = {
  name: "John",
  age: 30,
  city: "New York"
};

const filteredJSON = JSON.stringify(myObj, ["name","age"]);

console.log(filteredJSON);
// 输出:{"name":"John","age":30}

在此示例中,我们传递一个由 nameage 构成的字符串数组作为 replacer 参数,并使用它来过滤掉 city 属性。

如果您需要更详细的控制,可以传递一个函数作为 replacer 参数,该函数会执行针对每个属性的编码操作,并将每个属性值替换为返回值。

const myObj = {
  name: "John",
  age: 30,
  city: "New York"
};

const myJSON = JSON.stringify(myObj, function(key, value) {
  if (key === "city") {
    return undefined;
  }
  return value;
});

console.log(myJSON);
// 输出:{"name":"John","age":30}

在此示例中,我们定义了一个函数,该函数会检测每个属性,如果属性名称等于 city,则返回 undefined 来过滤掉该属性。如果是其他属性,则返回原始值。

使用 space 参数

您可以使用 space 参数来控制缩进空格数或字符串。

const myObj = {
  name: "John",
  age: 30,
  city: "New York"
};

const prettyJSON = JSON.stringify(myObj, null, 2);

console.log(prettyJSON);
// 输出:
// {
//   "name": "John",
//   "age": 30,
//   "city": "New York"
// }

在此示例中,我们将第三个参数设置为 2,表示每个级别插入 2 个空格。

总结

使用 JSON.stringify() 方法可以将 JavaScript 对象转换为 JSON 格式字符串。通过使用 replacerspace 参数,可以控制要编码和输出的对象和字符串的属性和格式。