这个问题难在哪里?
接口返回、配置文件和日志中可能包含令牌、内部地址或业务数据。直接粘贴到远程格式化服务存在泄露风险,而肉眼检查单行JSON又很难定位缺失符号。
建议参数
缩进
2个空格结构清楚且不会产生过宽的嵌套显示。
解析标准
严格JSON不接受注释、单引号、尾逗号或未加引号的键名。
大文本处理
分段定位超大日志应先提取目标JSON片段,避免无关内容干扰。
具体操作步骤
- 1
粘贴原文
保留原始文本副本,不要先用自动替换破坏转义字符。
- 2
执行校验
查看解析器返回的错误位置和附近字符。
- 3
修复常见语法
检查双引号、逗号、括号配对、反斜杠和控制字符。
- 4
格式化复核
语法通过后展开结构,继续核对字段名称、空值和数据类型。
常见失败原因与避坑方法
使用单引号
JSON字符串和键名必须使用双引号,单引号属于JavaScript写法。
最后一项保留逗号
严格JSON不允许对象或数组最后一个成员后出现尾逗号。
只修语法不看类型
字符串“123”和数字123含义不同,接口校验仍可能失败。
常见问题
粘贴的JSON会上传到服务器吗?
不会。格式化和校验使用浏览器内置JSON解析能力,输入内容只存在于当前页面内存。
为什么JavaScript对象能运行但JSON校验失败?
JavaScript对象字面量允许部分JSON不支持的语法,例如单引号、注释、尾逗号和未加引号的键名。
Unexpected token通常是什么意思?
解析器在当前位置遇到了不符合JSON语法的字符,常见原因是引号、逗号或转义符错误。
格式正确为什么接口仍然报错?
语法正确只说明文本能解析。接口还可能要求固定字段、数据类型、取值范围或嵌套结构。
能处理包含中文的JSON吗?
可以。JSON支持Unicode文本,中文无需转换为Unicode转义后才能格式化。