JSON 解析出错了?
快速定位并修复 JSON.parse() 抛出的错误。精确显示每个语法错误的行号、列号和原因,一键自动修复。
调试 JSON 解析错误
系统排查和修复代码中解析失败问题的方法。
永远先打印原始输入
调用 JSON.parse() 之前先 console.log 原始字符串。很多解析错误是因为收到了 HTML 错误页、空响应或已经解析过的对象,根本不是 JSON 字符串。
检查 Content-Type 头
如果 API 响应的 Content-Type 是 text/html,你收到的很可能是错误页面而非 JSON。检查 API 地址和认证信息是否正确。
警惕重复解析
如果你的 HTTP 客户端(axios、fetch)已经自动解析了 JSON 响应,再调一次 JSON.parse() 就会报错。先确认拿到的数据是不是已经是对象了。
在代码中处理边界情况
JSON.parse() 永远要包在 try-catch 里。解析前检查空字符串和 null 值。失败时返回合理的默认值或错误对象。
解析错误诊断
把看不懂的报错信息变成能用的 JSON 文档,只需几秒钟。
精确定位错误
显示导致解析失败的确切行号、列号和字符。编辑器自动高亮错误位置,不用你自己找。
通俗易懂的错误说明
不再是 'Unexpected token < at position 0' 这样的天书,而是「第 3 行本该用双引号却用了单引号」这样的人话。
常见解析错误自动修复
一键修复尾随逗号、单引号、注释和无引号键名——JSON.parse() 报错最常见的四大元凶。
理解 JSON 解析错误
JSON.parse() 错误是 JavaScript 应用中最常见的运行时异常之一。只要输入字符串不完全符合 JSON 规范就会触发。读懂错误信息的规律,就能不靠猜测直接定位根本原因。
错误信息速查表
'Unexpected token <'——收到的是 HTML 不是 JSON(检查请求地址)
'Unexpected end of input'——响应被截断了(检查网络状况)
'Unexpected token o at position 1'——对已解析的对象重复解析了
JSON 解析错误 — 常见问题
JSON.parse() 报 'Unexpected token' 是什么意思?
表示解析器在某个位置遇到了不该出现的字符。比如 'Unexpected token <' 通常意味着你收到的是 HTML 错误页而不是 JSON;'Unexpected token ,' 说明有尾随逗号或连续逗号。
'Unexpected end of JSON input' 是怎么回事?
JSON 字符串在所有括号闭合之前就结束了。常见原因有:API 响应因超时被截断、字符串被意外裁切、文件下载不完整。
为什么报 'Unexpected token o at position 1'?
几乎可以肯定是对一个已经解析好的对象又调用了 JSON.parse()。对象的字符串表示是 '[object Object]',位置 1 的 'o' 便会触发这个错误。检查是否多解析了一次。
代码里的 'SyntaxError: JSON.parse' 怎么修?
首先把你要解析的原始字符串打印出来。粘贴到这个验证器里就能看到具体是什么错。常见的代码层面修复:确认 API 返回的是 JSON 而非 HTML、检查 Content-Type 头、确保响应体不为空。
为什么 JSON.parse 解析 API 响应时报错?
检查三件事:(1) 响应 Content-Type 应该是 application/json,不是 text/html;(2) 响应体不应为空(状态码 204 或错误页面);(3) 服务端返回的不是 JSONP(带回调函数包裹)。
能解析带注释的 JSON 吗?
标准 JSON.parse() 不接受注释。如果数据中有 // 或 /* */ 注释,需要先去除。本工具的自动修复功能会自动移除注释,生成 JSON.parse() 可接受的有效 JSON。
JSON 和 JavaScript 对象有什么区别?
JSON 要求双引号键名和字符串值、不能有尾随逗号、不能有注释、不能有 undefined。JavaScript 对象这些都允许。JSON 是 JavaScript 对象字面量语法的严格子集——所有 JSON 都是合法 JS,但并非所有 JS 对象都是合法 JSON。
相关工具
探索更多 JSON 工具,提升你的工作效率。