JSON.stringify

发布时间 2023-11-14 15:31:18作者: Tsunami黄嵩粟

当使用JSON.stringify函数时,第二个参数是一个数组或一个函数,用于控制序列化过程中对象的属性。第三个参数是一个用于控制缩进的数字或字符串,用于美化输出的可选参数。

让我们通过一个例子来说明:

假设我们有以下 JavaScript 对象:

const person = {
  name: 'John',
  age: 30,
  address: {
    city: 'New York',
    zip: '10001'
  }
};

现在,我们将使用JSON.stringify,通过第二个参数选择性地包含/排除属性:

// 示例 1: 仅包含 'name' 和 'age'
const jsonString1 = JSON.stringify(person, ['name', 'age']);
console.log(jsonString1);
// 输出: {"name":"John","age":30}

// 示例 2: 使用 replacer 函数转换值
const jsonString2 = JSON.stringify(person, (key, value) => {
  if (key === 'age') {
    return value * 2; // 年龄加倍
  }
  return value;
});
console.log(jsonString2);
// 输出: {"name":"John","age":60,"address":{"city":"New York","zip":"10001"}}

现在,我们将使用第三个参数来控制缩进:

// 示例 3: 使用数字指定缩进
const jsonString3 = JSON.stringify(person, null, 2);
console.log(jsonString3);
// 输出:
// {
//   "name": "John",
//   "age": 30,
//   "address": {
//     "city": "New York",
//     "zip": "10001"
//   }
// }

在这个示例中,第三个参数是 2,表示使用两个空格进行缩进。