JavaScript处理JSON靠JSON.parse()解析字符串为对象、JSON.stringify()将对象转字符串,二者原生支持;需注意语法规范、不可序列化值及安全问题。
JavaScript 中处理 JSON 数据主要靠两个内置方法:JSON.parse() 用于解析字符串为对象,JSON.stringify() 用于把对象转成 JSON 字符串。它们不依赖外部库,浏览器和 Node.js 都原生支持。
服务器返回的、localStorage 存的、或者手动拼的 JSON 数据,通常都是字符串形式,必须解析才能访问属性。
const str = '{"name":"小明","age":25,
"active":true}';
const obj = JSON.parse(str);
console.log(obj.name); // "小明"
向后端发送数据、存入 localStorage、调试打印结构时常用。它只序列化可枚举的自有属性。
const user = { id: 1, name: "小红", toJSON() { return { nick: "红红" }; } };
console.log(JSON.stringify(user)); // {"id":1,"name":"小红"}
console.log(JSON.stringify(user, null, 2)); // 格式化输出
JSON 处理看似简单,但几个细节容易踩坑:
提升开发效率的几条经验:
console.log(JSON.stringify(data, null, 2))
JSON.parse(JSON.stringify(obj))(注意局限性)response.json()(它内部就是封装了 JSON.parse)基本上就这些。掌握 parse 和 stringify 的行为边界,比记住语法更重要。