JSON.parse()是标准且最安全的JSON字符串转JavaScript对象方法,需确保字符串符合JSON格式(双引号、无注释/尾逗号等),配合try...catch处理错误,并可用reviver函数过滤转换数据。

用 JSON.parse() 方法就能把 JSON 字符串转成 JavaScript 对象,这是标准且最安全的方式。
基本用法:直接解析
只要字符串符合 JSON 格式(键名和字符串值必须用双引号,不能有单引号或末尾逗号),调用 JSON.parse() 即可:
JSON.parse('{"name": "Alice", "age": 30}') → {name: "Alice", age: 30}JSON.parse('[1, "hello", true]') → [1, "hello", true]
处理解析失败的情况
非法 JSON 会抛出 SyntaxError,建议用 try...catch 捕获:
- 错误示例:
JSON.parse("{'name': 'Alice'}")(单引号不合法)→ 报错 - 安全写法:
try { const obj = JSON.parse(jsonString); console.log(obj); } catch (e) { console.error("JSON 解析失败:", e.message); }
可选参数:reviver 函数(用于过滤或转换数据)
第二个参数是可选的 reviver 函数,能在解析过程中逐层处理每个键值对:
立即学习“Java免费学习笔记(深入)”;
- 比如只保留数值大于 10 的属性:
const json = '{"a": 5, "b": 15, "c": 25}'; const obj = JSON.parse(json, (key, value) => key === "" ? value : (typeof value === "number" && value > 10 ? value : undefined) ); // → {b: 15, c: 25} - 注意:返回
undefined会删除该属性;返回其他值则替换原值。
常见陷阱提醒
容易出错的地方要特别注意:
- JSON 中的字符串必须用双引号,
'{"name": "Tom"}'✅,{"name": 'Tom'}❌ - 不能有注释、尾随逗号、undefined、function、NaN、Infinity 等 JS 特有值
- 浏览器环境支持良好;Node.js 从 v0.1.26 起就内置支持
- 不要用
eval()或构造函数替代JSON.parse(),有严重安全风险


















