贝利信息

如何使用JavaScript操作JSON数据_JavaScript如何解析和序列化JSON字符串

日期:2026-01-07 00:00 / 作者:夜晨
JavaScript操作JSON的核心是JSON.parse()和JSON.stringify():前者严格校验标准JSON格式,单引号、尾逗号、undefined等均报SyntaxError;后者会忽略undefined/function/Symbol属性,对Date/RegExp等作特殊处理,循环引用直接抛错;需用replacer函数或预处理来支持BigInt、Map等类型。

JavaScript 里操作 JSON 数据,核心就两件事:JSON.parse()JSON.stringify()。用错参数、传入非法值、忽略循环引用或特殊类型,都会立刻报错或静默丢失数据。

JSON.parse() 解析字符串时为什么报 SyntaxError?

最常见的错误是传入了非标准 JSON 字符串——比如单引号包裹的键名、末尾多逗号、使用 undefined 或函数作为值。浏览器和 Node.js 的 JSON.parse() 严格遵循 JSON 规范,不接受任何 JS 扩展语法。

JSON.stringify() 序列化对象时字段突然消失?

JSON.stringify() 会跳过 undefinedfunctionSymbol 类型的属性,也会忽略循环引用的对象,且不处理 DateRegExpMapSet 等内置对象——它们会被转成 null 或空对象。

如何安全地 parse + stringify 以保留日期、BigInt 等类型?

原生 JSON API 不支持 BigIntundefinedMap 等,强行用会报错或丢失。没有银弹,但可按需分层处理:

真正麻烦的不是语法,而是隐式类型丢失和跨环境兼容性。比如后端返回的 "123" 是字符串还是数字,前端要不要自动转?null 字段该渲染为空还是留默认值?这些得在业务层约定清楚,而不是依赖 JSON 方法本身去猜。