本篇你会学到
读懂中文诊断,定位错误字符,区分错误与警告,并用一个尾逗号示例体验修复预览。整个过程都保留原始输入。
01 · 从错误位置开始
- 打开 JSON 校验,粘贴内容或导入 UTF-8 文本文件。
- 执行校验,先看问题列表里的第一条错误和修正建议。
- 点击诊断位置,编辑区会定位到对应字符;必要时同时检查上一行的结尾。
- 修改后再次校验,直到错误清除,再复制或下载需要的结果。
行和列都从 1 开始。列按编辑器使用的 UTF-16 位置计算;Tab 计一个位置,CRLF 计一次换行。Emoji 可能占两个或更多位置。
02 · 一起处理一个尾逗号
对象的最后一个字段后没有下一项,因此不需要逗号。下面的 roles 字段末尾多了一枚逗号。
含有尾逗号的输入
{
"name": "小明",
"roles": ["dev", "test"],
}点击“修复预览”后,先确认修复稿只移除了尾逗号。确认应用才会改变输入;取消会保留原文。修复后的版本应是:
合法的 JSON
{
"name": "小明",
"roles": ["dev", "test"]
}基础修复会再次严格校验候选内容。若还存在其他错误,先按诊断手动处理,不会把不合法的候选稿直接覆盖到原文。
03 · 常见错误速查
| 遇到的问题 | 错误示例 | 修改方向 |
|---|---|---|
| 属性名没有双引号 | {name: "小明"} | 将属性名写成 "name"。 |
| 使用了单引号 | {'name': '小明'} | 属性名和字符串都使用双引号。 |
| 字段之间缺少逗号 | {"a": 1 "b": 2} | 在两个字段之间补逗号。 |
| 最后一项后多了逗号 | {"a": 1,} | 移除闭合括号前的尾逗号。 |
| 包含不支持的值 | {"a": undefined} | 按业务含义选择 null 或其他合法值。 |
| 包含注释 | {/* 说明 */ "a": 1} | 确认注释内容后,手动移除。 |
| 非法反斜杠转义 | {"path": "C:\temp\work"} | 路径中的反斜杠需成对转义,写成连续的两条反斜杠。 |
| 一个值后还有额外内容 | {} {} | 保留一个顶层值;多条记录可改为数组。 |
错误列表不等于业务判断。例如 undefined 应改成 null、空字符串还是删掉字段,需要根据接口约定决定,工具不会代替你猜测。
04 · 错误与警告,分别处理
ERROR · 语法错误
内容还不是合法 JSON。先处理错误,再进行格式化和树形查看。
WARNING · 数据风险
语法可能合法,但存在重复键、数字精度等风险。原文会保留,下一步需结合用途判断。
例如 {"a":1,"a":2} 存在重复字段,不能简单转换为普通对象后忽略其中一个值。序匣会提示重复键并保留源内容。大整数风险可继续阅读 JSON 数字精度指南。
常见问题
提示的位置看起来没错,怎么办?
解析器标出的是无法继续读取的位置。缺少逗号或引号时,真正需要修改的字符可能在它前面。先检查当前行,再看前一行的末尾。
为什么带注释的配置不能通过?
这里使用严格 JSON 语法。注释、单引号、undefined 和尾逗号都不被接受。JSONC 或 JavaScript 对象字面量需要先按业务要求转换成 JSON。
能自动修复所有错误吗?
不能。当前基础修复仅针对可安全识别的尾逗号,并先展示修复稿。缺少值、引号或其他存在歧义的错误需要手动确认含义后修改。