本地运行
全部指南
JSON 校验 · 4 分钟阅读

JSON 报错了,从哪里开始?.

先找到问题,再决定怎么改。把一次报错变成可验证的修正。

浏览器本地处理
本篇你会学到

读懂中文诊断,定位错误字符,区分错误与警告,并用一个尾逗号示例体验修复预览。整个过程都保留原始输入。

01 · 从错误位置开始

  1. 打开 JSON 校验,粘贴内容或导入 UTF-8 文本文件。
  2. 执行校验,先看问题列表里的第一条错误和修正建议。
  3. 点击诊断位置,编辑区会定位到对应字符;必要时同时检查上一行的结尾。
  4. 修改后再次校验,直到错误清除,再复制或下载需要的结果。
行和列都从 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。

能自动修复所有错误吗?

不能。当前基础修复仅针对可安全识别的尾逗号,并先展示修复稿。缺少值、引号或其他存在歧义的错误需要手动确认含义后修改。

规范参考:RFC 8259 · JSON 数据交换格式

快一点,再快一点

让双手留在键盘上,把注意力留给内容。

执行当前工具Ctrl / ⌘ + Enter
搜索工具Ctrl / ⌘ + K
在编辑器中查找Ctrl / ⌘ + F
撤销编辑Ctrl / ⌘ + Z
缩进选中内容Tab
离开编辑器的 Tab 缩进Esc 然后 Tab
关闭弹窗Esc
查看快捷键?

手动复制结果

浏览器暂未允许自动复制。文本已选中,请按 Ctrl / ⌘ + C。