这个指南解决什么问题?
本页用于排查 JSON 格式化、校验、类型和复制复核问题,帮助你把接口响应、日志片段或配置文件转换成可读、可检查、可安全复制的结构。
什么时候应该停下来复核?
当输入来自生产日志、接口响应、客户数据、密钥片段或待发布配置时,应先脱敏并保留原始样本,再比较工具输出是否只改变预期格式。
JSON 尾随逗号与单引号错误排查
用最小样例定位 JSON 尾随逗号、单引号、未加引号 key、注释和日志前缀导致的格式化失败。
先用 JSON 工具确认输入是否为严格 JSON,再按本页缩小错误范围。
这个页面解决什么问题
JSON 解析失败时,用户经常只看到一个笼统的 “Unexpected token” 错误,却不知道该看逗号、引号、key、注释还是复制来源。本页把最常见的两类错误——尾随逗号和单引号——拆成可复现样例,并说明为什么 JavaScript 对象写法不等于 JSON。
严格 JSON 不允许注释、尾随逗号、单引号字符串、未加引号的对象键,也不支持 undefined 或 NaN。接口文档、浏览器控制台和后端日志常常混入非 JSON 语法,所以排查时应先截取最小对象,而不是直接处理完整响应。
快速判断
- 错误位置出现在
}或]前,优先查最后一个字段或数组项后是否多了逗号。 - 字符串外层是单引号,或对象 key 没有英文双引号,说明输入更像 JavaScript 字面量。
- 文本前面带
INFO payload=、Markdown 代码围栏或callback(...),应先删除外壳。 - 如果第一个字符是
<,通常不是 JSON,而是 HTML 错误页或登录页。
可复制示例:错误输入与修复后输入
下面的错误输入常见于从 JavaScript 示例或日志中复制数据。修复时要同时处理引号、尾逗号和注释。
{status: 'ok', items: [1,2,], // copied from console
}{"status":"ok","items":[1,2]}修复后的版本使用英文双引号包裹 key 和字符串,删除了最后一个数组项后的逗号,也删除了 JSON 不支持的注释。此时再格式化,工具只应改变缩进而不改变值。
诊断步骤
- 复制第一个
{到最后一个}之间的最小片段。 - 先删除日志前缀、代码围栏、注释和回调函数外壳。
- 检查所有对象键和字符串是否使用英文双引号。
- 检查对象和数组最后一项后面是否还有逗号。
- 再次放入 JSON 格式化工具,通过后再扩展到完整样本。
排查顺序要从语法外壳到字段结构逐步扩大。不要在语法尚未通过时直接转换为 YAML、XML 或代码实体类,因为转换工具会把原始错误带到下一步。
常见错误表
| 现象或场景 | 常见原因 | 处理动作 |
|---|---|---|
Unexpected token } | 最后一个对象字段后有尾随逗号。 | 删除末尾逗号,重新校验对象边界。 |
Unexpected token ' | 字符串使用单引号,属于 JavaScript 写法。 | 改为英文双引号,并确认内部引号已转义。 |
Unexpected token / | 复制了 // 或 /* */ 注释。 | 删除注释,若需要说明放到 JSON 外部文档。 |
Unexpected token I | 日志前缀 INFO 或说明文字混入。 | 只保留 JSON 主体,再格式化。 |
常见误判
- 把“浏览器控制台显示像对象”误认为它就是严格 JSON。
- 把尾随逗号当成可读性写法;JSON 与部分 JavaScript 运行环境不同。
- 把格式化成功当成业务字段正确;语法通过后仍需检查字段类型。
- 复制修复结果时忘记对比原始值,导致数组长度或字符串转义改变。
此类错误通常能通过很小的样本复现。保留一份坏样例和一份修复样例,比只截取报错截图更有利于团队协作。
隐私、安全和适用边界
用于排查时请使用脱敏样本。不要粘贴访问令牌、Cookie、客户资料、内部域名、未公开商业规则、支付记录或完整生产日志。页面适合处理公开示例、教学片段、复现样本和已经替换真实值的配置。
本页只处理 JSON 语法层错误。字段是否符合接口契约、重复 key 如何处理、大整数是否安全、业务 code 是否成功,都需要结合接口文档或后端验证。
复制或发布前复核清单
- 输入是否删除了日志前缀和说明文字。
- 所有 key 和字符串是否使用英文双引号。
- 对象和数组末尾是否没有多余逗号。
- 是否保留了原始输入,方便用 文本对比 检查修复差异。
- 是否脱敏 token、邮箱、手机号和客户字段。
- 修复后是否再用 JSON 工具完整校验一次。
相关工具和延伸阅读
参考依据
- MDN JSON.parse():严格 JSON 解析行为。
- MDN JSON.stringify():序列化和空白处理。
- Ymir Tool JSON 工具页:本地快速格式化与校验入口。
参考资料和规范来源
本页的排查建议结合浏览器行为、公开标准和常见开发实践整理。涉及线上发布、安全决策或兼容性判断时,请以官方规范和你自己的运行环境为准。
编辑记录:Ymir Tool editorial review,2026-06-01。本页作为 Sprint 3 新增案例/排错内容发布,目标是把单一工具入口扩展为可复核的任务说明、错误示例和操作边界。
编辑与复核说明
本页由 Ymir Tool editorial review 维护,最后更新于 2026-06-01。页面示例使用合成输入,避免展示真实密钥、客户资料或生产日志。复制结果到正式流程前,请结合对应工具页、官方规范和你自己的运行环境再次确认。