javascript如何解析与操作JSON数据_常见序列化问题有哪些

admin 百科 15
JavaScript中安全处理JSON需用try...catch包裹JSON.parse()并利用reviver转换日期,JSON.stringify()会忽略undefined/函数/Symbol且不支持循环引用,须手动处理ISO日期、过滤循环引用及编码问题。

javascript如何解析与操作JSON数据_常见序列化问题有哪些-第1张图片-佛山资讯网

JavaScript 中解析和操作 JSON 数据主要靠 JSON.parse()JSON.stringify(),但实际使用中容易踩坑——比如日期变字符串、函数丢失、循环引用报错、特殊字符处理异常等。

如何安全解析 JSON 字符串

JSON.parse() 解析字符串时,必须确保输入是合法 JSON 格式(双引号键名、无尾逗号、无注释、无 undefined 或函数)。非法格式会直接抛出 SyntaxError。

  • 始终用 try...catch 包裹解析逻辑,避免崩溃
  • 可传入第二个参数 reviver 函数 在解析过程中转换值,例如把 ISO 字符串转为 Date 对象
  • 浏览器环境可配合 response.json()(fetch API)自动解析,但后端返回非 JSON 内容时仍需错误处理

如何正确序列化 JS 对象为 JSON

JSON.stringify() 会忽略 undefined、函数、Symbol 类型的属性,且不能处理循环引用对象(会报 TypeError: Converting circular structure to JSON)。

  • 若需保留日期,先手动转成 ISO 字符串:obj.date = obj.date.toISOString()
  • 处理循环引用:可用自定义 replacer 过滤掉引用字段,或借助库如 flattedcycle
  • 需要缩进美化输出时,第三个参数支持数字(空格数)或字符串(如 " "

常见 JSON 序列化/解析问题汇总

以下问题高频出现,且容易被忽视:

标签: javascript java js json 编码 浏览器 app 工具 后端

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~