Javascript is required

JSON 校验与语法错误定位

浏览器本地数据校验与诊断

检查 JSON 语法、BOM、不可见字符和尾随逗号;错误行列取决于浏览器解析器。

试用 JSON 校验案例

载入会替换当前输入并进行校验,不会自动应用修复。卡片中的 U+ 括号标记仅用于显示不可见字符,实际载入的是原始字符。这些是本地响应样例,不会请求真实 API。

API 返回 HTML

<!doctype html>
<html><body><h1>502 Bad Gateway</h1></body></html>

JSON 语法错误,无修复候选。这个 HTML 错误页样例不保证有解析器行列位置;请先检查 API 响应。

合法 JSON

{
  "ok": true,
  "items": [1, 2]
}

语法正确,无修复候选。保留输入空白与值;不代表符合 Schema 或 API 契约。

尾随逗号

{
  "items": [1, 2,]
}

语法错误;完整通过校验的候选只移除 ] 前的逗号。部分引擎不提供错误位置;需手动应用建议并核对。

开头 BOM

⟦U+FEFF⟧{"ok":true}

语法错误。U+FEFF 位于第 1 行第 1 列;候选移除该开头 BOM,且完整通过校验。它也会计入不可见字符列表。

字符串外零宽字符

{"id": 1⟦U+200B⟧2}

语法错误。U+200B 位于第 1 行第 9 列(UTF-16);不提供修复候选,因为删除数字之间的字符可能改变值。

截断 JSON

{"items": [1, 2

语法错误,无修复候选。无法安全推断缺失后缀;解析器文案和位置取决于浏览器引擎。

字符串内未转义换行

{"message": "first
second"}

语法错误,无修复候选。原始换行位于第 1 行第 19 列(UTF-16),解析器报告位置可能不同。应人工决定使用转义换行还是其他值。

Emoji 与大整数

{"emoji":"👩⟦U+200D⟧💻","id":9007199254740993}

语法正确,无修复候选。Emoji 中 U+200D 位于第 1 行第 13 列(UTF-16),不能直接删除。本工具解析 9007199254740993 得到 9007199254740992;不会提示精度警告,也不会改写原输入。

排查 JSON 语法并核对修复建议

粘贴原始接口响应,或载入编辑器下方的案例,检查语法、BOM 和不可见字符。浏览器解析器提供位置时会显示行列;部分错误没有可用位置,不能保证每次精确定位。

校验期间保留原始文本。仅在移除开头 BOM 或尾随逗号后完整通过 JSON 语法校验时提供候选,应用修复仍需人工核对。校验逻辑在浏览器内存运行,但敏感数据隐私还取决于线上脚本与实际网络流量。

使用边界与限制条件

  • 语法校验不等于 JSON Schema 校验:不会检查必填字段、字段类型或 API 契约。
  • 数字可能通过语法校验,但解析为 JavaScript 数值后丢失精度;API 契约允许时可将大整数标识符保存为字符串。
  • 不可见字符可能合法存在于字符串或 Emoji 中;这里只列出,不全局删除。列号按 UTF-16 代码单元计数。
  • 疑似 HTML/XML、截断文档和未转义换行不会获得猜测性修复;请检查 HTTP 状态、Content-Type 和实际响应。

常见问题与技术解答 (FAQ)

为什么 API 响应报 Unexpected token < 或其他解析错误?▼

接口可能返回了 HTML 错误页或登录页,而非 JSON。请检查 HTTP 状态、Content-Type、最终响应 URL 与响应正文。不同浏览器的错误文案和可用位置可能不同。

JSON 语法正确是否代表通过 JSON Schema 校验?▼

不代表。本工具只检查 JSON 语法;合法 JSON 仍可能缺少必填字段,或包含不符合 Schema 和 API 契约的字段类型。

工具会建议哪些修复,会不会改变合法 JSON?▼

合法输入保持原样。只有移除开头 BOM 或尾随逗号后完整解析成功才提供候选;不会自动重写字符串中的不可见字符、单引号、截断数据或原始换行。每次应用建议都需复核。