跳到主要内容

JS JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,语法与 JavaScript 对象非常相似,但更严格、通用。


JSON 基础语法

  • 数据类型:支持 字符串数值布尔值null数组对象
  • 键名必须是字符串(用双引号)
  • 不支持函数、undefined、Symbol
json
{
"name": "Alice",
"age": 20,
"isStudent": true,
"skills": ["JS", "HTML", "CSS"],
"info": { "city": "Beijing" }
}

JSON 与对象的转换

1. 对象 → JSON

使用 JSON.stringify()

js
const obj = { name: "Alice", age: 20 };
const jsonStr = JSON.stringify(obj);
console.log(jsonStr); // '{"name":"Alice","age":20}'

2. JSON → 对象

使用 JSON.parse()

js
const jsonStr = '{"name":"Alice","age":20}';
const obj = JSON.parse(jsonStr);
console.log(obj.name); // 'Alice'

可选参数

JSON.stringify(value, replacer, space)

  • replacer :控制要序列化的属性
  • space :格式化输出,控制缩进空格
js
const obj = { a: 1, b: 2, c: 3 };
console.log(JSON.stringify(obj, ["a", "b"], 2));
/*
{
"a": 1,
"b": 2
}
*/

常见注意点

  • 日期对象会被转换为字符串
  • undefined函数Symbol 属性会被忽略
  • JSON.parse() 会抛出异常,需配合 try...catch
js
try {
const data = JSON.parse('{"name": "Alice"}');
} catch (err) {
console.error("JSON 解析错误", err);
}