📜  js json 到对象 - Javascript (1)

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

JS JSON 到对象 - Javascript

在Javascript中,JSON(JavaScript Object Notation)是一种用于数据交换的格式,可以将复杂的数据结构序列化为字符串,并在需要时将其反序列化为Javascript对象。

序列化

使用JSON.stringify()可以将Javascript对象序列化为JSON字符串。

语法
JSON.stringify(value, replacer, space)
  • value: 要序列化的Javascript对象。
  • replacer(可选): 一个函数或数组,用于控制序列化时如何转换值。
  • space(可选): 用于缩进输出的空格数。如果是数字,则表示缩进的空格数;如果是字符串,则每行输出使用的字符串。
示例
const person = {
  name: "John",
  age: 30,
  hobbies: ["reading", "swimming"]
};

const json = JSON.stringify(person, null, 2);
console.log(json);

输出:

{
  "name": "John",
  "age": 30,
  "hobbies": [
    "reading",
    "swimming"
  ]
}

其中,null表示没有指定replacer参数,2表示使用两个空格进行缩进。

反序列化

使用JSON字符串创建Javascript对象的方法是将JSON字符串传递给JSON.parse()函数。

语法
JSON.parse(text, reviver)
  • text: 要解析的JSON字符串。
  • reviver(可选): 一个函数,可在解析过程中对值进行转换。
示例
const json = '{"name":"John","age":30,"hobbies":["reading","swimming"]}';
const person = JSON.parse(json);
console.log(person);

输出:

{ name: 'John', age: 30, hobbies: [ 'reading', 'swimming' ] }
错误处理

在使用JSON时,可能会遇到错误。以下是几种常见的错误:

  • SyntaxError: 当JSON字符串无法解析时。
  • TypeError: 当输入的值无法被序列化为JSON时。
语法
try {
  // code that might throw an error
} catch (error) {
  // handle the error
}
示例
try {
  const json = '{"name":"John","age":}';
  const person = JSON.parse(json);
  console.log(person);
} catch (error) {
  console.error(error.message);
}

输出:

Unexpected end of JSON input
总结

JSON是一种通用的数据格式,在Web开发中得到了广泛的应用。在Javascript中,使用JSON.stringify()JSON.parse()函数可以方便地将Javascript对象和JSON字符串互相转换。在使用JSON时,需要处理可能出现的错误,以确保代码的可靠性。