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

JavaScript 中解析和操作 JSON 数据主要靠 JSON.parse() 和 JSON.stringify(),但实际使用中容易踩坑——比如日期变字符串、函数丢失、循环引用报错、特殊字符处理异常等。
用 JSON.parse() 解析字符串时,必须确保输入是合法 JSON 格式(双引号键名、无尾逗号、无注释、无 undefined 或函数)。非法格式会直接抛出 SyntaxError。
response.json()(fetch API)自动解析,但后端返回非 JSON 内容时仍需错误处理JSON.stringify() 会忽略 undefined、函数、Symbol 类型的属性,且不能处理循环引用对象(会报 TypeError: Converting circular structure to JSON)。
obj.date = obj.date.toISOString()
flatted 或 cycle
" ")以下问题高频出现,且容易被忽视:
立即学习“Java免费学习笔记(深入)”;
JSON.stringify(new Date()) 返回 "2023-01-01T00:00:00.000Z" 是对的,但 JSON.parse() 不会自动还原为 Date,得靠 reviver 手动转换null,解析后无法区分原始值Content-Type: application/json; charset=utf-8,或文件保存编码不是 UTF-8camelize/decamelize
不必每次都手写容错逻辑,可以封装轻量工具函数:
safeParse(jsonStr, defaultValue = null),内部 try/catch 并返回默认值JSON.stringify(obj, (key, val) => typeof val === 'bigint' ? val.toString() : val) 支持 BigInt(ES2020+)console.log(JSON.stringify(obj, null, 2)) 查看结构,比直接打印更清晰以上就是javascript如何解析与操作JSON数据_常见序列化问题有哪些的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号