📜  将对象转为 json javascript (1)

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

将对象转为 JSON 在 JavaScript 中

JSON(JavaScript Object Notation) 是在 JavaScript 中存储和交换数据的一种格式。它是一种轻量级的数据格式,易于阅读和编写,同时也易于解析和生成。在 JavaScript 中,将对象转为 JSON 格式的方法是使用 JSON.stringify() 函数。本文将介绍如何使用 JSON.stringify() 函数将 JavaScript 对象转为 JSON。

语法

JSON.stringify() 函数有两个参数:

JSON.stringify(value[, replacer[, space]])
  • value:必选参数,代表要转换为 JSON 的值,可以是任意 JavaScript 对象。
  • replacer:可选参数,用于转换结果的函数或数组。如果是函数,则该函数负责转换对象的键和值,而数组则指定要包含哪些对象属性。默认值为 null
  • space:可选参数,用于控制输出 JSON 字符串时使用的空格数。如果是数字,则指定每个层级缩进的空格数,最多可设置为 10,如果超出将会被截断。如果是字符串,则该字符串将作为缩进字符。默认值为 null,表示字符不缩进。
示例
简单示例
const object = {
  name: 'Alice',
  age: 22,
  isMale: false,
  hobbies: ['reading', 'listening to music', 'jogging']
}
const jsonString = JSON.stringify(object)
console.log(jsonString)

输出结果为:

{"name":"Alice","age":22,"isMale":false,"hobbies":["reading","listening to music","jogging"]}
自定义属性
const object = {
  name: 'Alice',
  age: 22,
  isMale: false,
  city: 'New York',
  postalCode: '10016',
  email: 'alice@example.com'
}
const jsonString = JSON.stringify(object, ['name', 'city', 'email'])
console.log(jsonString)

输出结果为:

{"name":"Alice","city":"New York","email":"alice@example.com"}
格式化输出
const object = {
  name: 'Alice',
  age: 22,
  isMale: false,
  hobbies: ['reading', 'listening to music', 'jogging']
}
const jsonString = JSON.stringify(object, null, 2)
console.log(jsonString)

输出结果为:

{
  "name": "Alice",
  "age": 22,
  "isMale": false,
  "hobbies": [
    "reading",
    "listening to music",
    "jogging"
  ]
}
自定义转换函数
const object = {
  firstName: 'Alice',
  lastName: 'Smith',
  age: 22,
  isMale: false
}
const jsonString = JSON.stringify(object, (key, value) => {
  if (key === 'isMale') {
    return value ? '男' : '女'
  } else {
    return value
  }
}, 2)
console.log(jsonString)

输出结果为:

{
  "firstName": "Alice",
  "lastName": "Smith",
  "age": 22,
  "isMale": "女"
}
结论

将 JavaScript 对象转为 JSON 格式,可以使用 JSON.stringify() 函数。该函数有三个参数:

  • value:要转换为 JSON 的值。
  • replacer:用于转换结果的函数或数组。
  • space:控制输出 JSON 字符串时使用的空格数。

在编写代码时,可以根据实际情况选择是否指定 replacerspace 参数,以输出所需格式的 JSON 数据。