📜  js 对象到 jspn - Javascript (1)

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

JS 对象到 JSON - Javascript

在Javascript中,可以通过对象字面量的方式创建对象,也可以通过构造函数的方式创建对象,对象中可以包含属性和方法。在一些场景下,需要将Javascript的对象转化为JSON格式,这时我们可以使用JSON.stringify()方法。

JSON是什么?

JSON(JavaScript Object Notation),是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,采用完全独立于语言的文本格式来表示数据。

JSON格式是一个键值对的集合,类似于Javascript中的对象。一个JSON对象可以包含多个键值对,每个键值对之间用英文逗号分隔,键和值之间用英文冒号分隔,被包含在大括号中。

Javascript 对象转为JSON格式

在Javascript中,我们可以使用JSON.stringify()方法将Javascript对象转化为JSON格式。JSON.stringify()方法接受三个参数,第一个参数是需要被转化的Javascript对象,第二个参数是一个replacer函数或者一个数组。

replacer函数用于转化Javascript对象,可以被用于过滤和处理值。如果replacer函数返回undefined,该值将被忽略(即直接删除)。例如,我们可以使用replacer函数来过滤掉undefined值:

const data = {
  name: 'Tom',
  age: undefined,
  gender: 'male'
}

const result = JSON.stringify(data, (key, value) => {
  if (value === undefined) {
    return undefined;
  }
  return value;
})

console.log(result); // {"name":"Tom","gender":"male"}

第二个参数可以传递一个数组,该数组仅包括转化后JSON格式中的键名,用于指定序列化对象中哪些属性是需要转化的。例如,我们可以指定仅转化name属性:

const data = {
  name: 'Tom',
  age: 18,
  gender: 'male'
}

const result = JSON.stringify(data, ['name']);

console.log(result); // {"name":"Tom"}

如果我们不指定第二个参数,JSON.stringify()将转化所有值。

JSON格式转为Javascript对象

我们可以使用JSON.parse()方法将JSON格式转化为Javascript对象:

const data = '{"name": "Tom", "age": 18}'

const result = JSON.parse(data);

console.log(result); // {name: "Tom", age: 18}

需要注意的是,JSON格式的键名必须要用双引号括起来,否则将无法转化为Javascript对象。如果JSON格式不规范,JSON.parse()方法将会抛出异常错误。

总结

在Javascript中,可以通过JSON.stringify()方法将Javascript对象转化为JSON格式,通过JSON.parse()方法将JSON格式转化为Javascript对象。转化过程中,我们可以使用replacer函数或者一个数组来过滤和处理值,或者指定转化那些键名。