JavaScript 解析 JSON 主要用 JSON.parse(),需确保输入为合法 JSON 字符串(键名双引号、无尾逗号、无注释、无 undefined/函数),并用 try…catch 捕获 SyntaxError 异常。

JavaScript 解析 JSON 主要用 JSON.parse(),它把符合 JSON 格式的字符串转成对应的 JavaScript 值(对象、数组、字符串、数字、布尔或 null)。用法简单,但出错很常见,关键在细节。
确保输入是合法的 JSON 字符串
JSON 格式比 JavaScript 对象字面量更严格:键名必须双引号包裹、不能有单引号或未加引号的键、不支持尾逗号、不支持注释、不能用 undefined 或函数。
✅ 正确:'{"name": "张三", "age": 25}' ❌ 错误:"{name: '张三'}"(键没引号、值用单引号) ❌ 错误:'{"name": "李四",}'(末尾逗号) ❌ 错误:'{"count": undefined}'(undefined 不是合法 JSON 值)
必须用 try…catch 捕获解析异常
JSON.parse() 遇到非法格式会直接抛出 SyntaxError,不加错误处理会导致脚本中断。
推荐写法:
let data;
try {
data = JSON.parse(jsonString);
} catch (e) {
console.error('JSON 解析失败:', e.message);
data = null;
}
别依赖 typeof 或 === null 判断是否成功——失败时根本不会赋值。
立即学习“Java免费学习笔记(深入)”;
注意特殊字符和编码问题
如果 JSON 字符串来自网络请求或用户输入,可能含 Unicode 转义(如 "u4f60u597d")或 UTF-8 BOM。现代浏览器基本能正确处理,但需确保:
响应头 Content-Type 包含 charset=utf-8 服务端返回的字符串本身是有效 UTF-8 编码 避免手动拼接 JSON 字符串(易引入不可见控制字符)
若遇到乱码或解析失败,先用 console.log(JSON.stringify(jsonString)) 查看原始字符串内容。
可选:使用 reviver 函数做预处理
JSON.parse(str, reviver) 的第二个参数是可选函数,能在解析过程中修改每个键值对,适合转换日期字符串、过滤敏感字段等。
例如把 ISO 时间字符串自动转为 Date 对象:
const obj = JSON.parse('{"created": "2023-10-05T12:00:00Z"}', (key, value) => {
return key === 'created' && typeof value === 'string'
? new Date(value)
: value;
});
// obj.created 是 Date 实例
注意:reviver 会递归调用,包括嵌套对象和数组项;返回 undefined 会删除该属性。
基本上就这些。核心就两条:输进来的得是标准 JSON 字符串,调用时一定包 try…catch。不复杂但容易忽略。
以上就是javascript如何解析json_有哪些注意事项的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1543656.html
微信扫一扫
支付宝扫一扫