📜  json stringify - Javascript (1)

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

JSON.stringify() - Javascript

JSON.stringify(obj) 方法用于将 JavaScript 对象转换成 JSON 字符串。其中 obj 参数为要转换的 JavaScript 对象。

语法
JSON.stringify(obj, replacer, space)
参数
  • obj (必填):要转换成 JSON 的 JavaScript 对象。
  • replacer (可选):一个函数,它可以把作为参数的对象转换为 JSON 的一部分。
  • space (可选):添加缩进、空格和换行符以使 JSON 字符串更易于读取。可以传递一个数字作为缩进的空格数,或者传递一个字符串用于缩进。
返回值

将 JavaScript 对象转换成的 JSON 字符串。

示例
基本用法
const obj = { name: 'Alice', age: 21 };
const json = JSON.stringify(obj);

console.log(json); // 输出 '{"name":"Alice","age":21}'
处理数组和嵌套对象
const obj = { 
  name: 'Bob', 
  age: 30, 
  hobbies: ['reading', 'swimming'], 
  address: { 
    city: 'Shanghai', 
    country: 'China' 
  } 
};

const json = JSON.stringify(obj);

console.log(json);
// 输出 '{"name":"Bob","age":30,"hobbies":["reading","swimming"],"address":{"city":"Shanghai","country":"China"}}'
使用 replacer 函数
const obj = { name: 'Charlie', age: 25, gender: 'male' };

const json = JSON.stringify(obj, (key, value) => {
  if (key === 'gender') {
    return undefined;
  }
  return value;
});

console.log(json);
// 输出 '{"name":"Charlie","age":25}'
使用 space 参数
const obj = { name: 'Dave', age: 18, hobbies: ['singing', 'dancing', 'coding'] };

const json = JSON.stringify(obj, null, 2);

console.log(json);
// 输出
// "{
//   "name": "Dave",
//   "age": 18,
//   "hobbies": [
//     "singing",
//     "dancing",
//     "coding"
//   ]
// }"
注意事项
  • 转换的对象如果包含循环引用,将会导致 TypeError 错误。
  • 如果指定了 replacer 函数,但返回值为 undefined,则该属性将从生成的 JSON 字符串中被省略。
  • 如果指定了 space 参数,但它不是一个数字或字符串,则会使用默认值。

以上是 JSON.stringify() 的用法介绍。更多方法详情请参考 MDN 文档