JavaScript中JSON解析与序列化依靠原生JSON.parse()和JSON.stringify(),前者将符合JSON格式的字符串转为JS值(需双引号),后者将JS值转为JSON字符串(忽略函数、undefined等),二者均需注意Date、循环引用、NaN等特殊值处理。

JavaScript 中的 JSON 解析与序列化主要靠 JSON.parse() 和 JSON.stringify() 两个原生方法,它们不依赖外部库,安全、高效、浏览器和 Node.js 全支持。
JSON.parse():把字符串转成 JavaScript 对象
用于将符合 JSON 格式的字符串解析为对应的 JS 值(对象、数组、字符串、数字、布尔值或 null)。注意:JSON 键名和字符串值必须用双引号,单引号或未加引号的键会报错。
基本用法:JSON.parse(‘{“name”: “Alice”, “age”: 30}’) → 返回一个对象 带错误处理:建议用 try/catch 包裹,防止非法 JSON 导致脚本中断 可选第二个参数 reviver 函数,用于在解析过程中过滤或转换值(例如把时间字符串自动转成 Date)
JSON.stringify():把 JavaScript 值转成 JSON 字符串
将对象、数组等 JS 值序列化为标准 JSON 字符串。只处理可枚举的自有属性,函数、undefined、Symbol、BigInt 和循环引用会自动被忽略或报错。
基本用法:JSON.stringify({name: “Bob”, active: true}) → ‘{“name”:”Bob”,”active”:true}’ 第二个参数可传数组(指定需要序列化的属性名)或 replacer 函数(自定义每个值的输出) 第三个参数用于美化输出:传数字(缩进空格数)或字符串(如 ‘\t’),方便调试
常见坑与注意事项
这两个方法看似简单,但实际使用中容易踩坑:
立即学习“Java免费学习笔记(深入)”;
Date 对象:直接 stringfy 会变成 ISO 字符串,parse 后只是普通字符串,不是 Date 实例 undefined / 函数 / Symbol:stringify 时会被跳过;若作为对象属性值,整个键值对消失 循环引用:stringify 会抛出 TypeError,需提前检测或用第三方库(如 flatted)处理 NaN 和 Infinity:stringify 后变成 null,parse 后仍是 null,无法保留原意
简单实用技巧
日常开发中可以这样提升健壮性:
封装安全 parse:const safeParse = str => { try { return JSON.parse(str); } catch { return null; } }; 深克隆小对象:用 JSON.parse(JSON.stringify(obj))(仅适用于纯数据,不含函数、Date 等) 调试打印:用 console.log(JSON.stringify(data, null, 2)) 查看结构更清晰
基本上就这些。掌握好 parse 和 stringify 的行为边界,比记住语法更重要。
以上就是Javascript中的JSON如何解析与序列化?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1541748.html
微信扫一扫
支付宝扫一扫