json.parse()将合法json字符串转为js值,要求双引号、无末尾逗号、不支持undefined等;非法则抛syntaxerror;建议用try...catch处理;reviver参数可预处理数据。

JSON.parse() 用来把符合 JSON 格式的字符串转换成 JavaScript 对象(或数组、基本值等)。
确保字符串是合法的 JSON 格式
JSON 有严格语法要求:键名必须用双引号包裹,字符串值也必须用双引号,不能用单引号;不允许末尾逗号;不支持 undefined、函数、Symbol、日期对象等 JS 特有类型。
- ✅ 正确:
"{\"name\":\"张三\",\"age\":25}"或'{"name":"张三","age":25}' - ❌ 错误:
"{name:'张三'}"(单引号、没引号的键)、"{name: '张三'}"、"{'name':'张三'}"
基本用法:直接调用 JSON.parse()
传入一个字符串,返回解析后的值。如果字符串非法,会立即抛出 SyntaxError 异常。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
-
const obj = JSON.parse('{"city":"北京","population":2154}');→ 返回一个普通对象 -
const arr = JSON.parse('[1,2,3]');→ 返回数组 -
const num = JSON.parse('42');→ 返回数字 42
带错误处理的安全写法
实际项目中建议用 try...catch 包裹,避免因格式错误导致脚本中断。
try { const data = JSON.parse(inputString); console.log(data); } catch (e) { console.error('JSON 解析失败:', e.message); }- 也可以封装成安全函数:
const safeParse = str => { try { return JSON.parse(str); } catch { return null; } };
可选参数:reviver 函数用于数据预处理
第二个参数是一个回调函数,会在每个键值对解析后执行,可用于过滤、转换或删除字段。
-
JSON.parse('{"price":199,"discount":0.2}', (key, value) => key === 'price' ? value * 0.9 : value)→ 把 price 按 9 折计算 - 返回 undefined 表示删除该属性;返回其他值则替换原值
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










