ENGINEERING PLAYBOOK

JSON 格式校验与错误定位

JSON 能被解析只说明语法成立,不代表字段类型、必填项或业务约束正确。应先做语法解析,再使用明确的数据契约验证结构。

适用人群:需要定位 JSON 语法位置并区分编码、类型和结构问题的开发人员

排查路径

  1. 确认输入是完整 JSON 文本而非 JavaScript 对象字面量。
  2. 定位引号、转义、逗号和括号错误。
  3. 检查数字范围、Unicode 与重复键策略。
  4. 再用 Schema 或应用校验器检查结构。

执行步骤

  1. 保存原始输入并确认 UTF-8 编码。
  2. 使用标准解析器而不是正则校验 JSON。
  3. 记录解析器给出的行列位置。
  4. 明确空值、缺失字段与空字符串的差异。
  5. 为未知字段和版本升级制定策略。

可复制命令与示例

Python 语法校验

python3 -m json.tool input.json >/dev/null

Node.js 解析检查

const value = JSON.parse(text);
console.log(typeof value);

可复现任务记录

具体错误或任务

配置文件含尾随逗号或不可见字符,应用只报告通用配置加载失败。

失败信号:标准解析器返回具体行列位置,或文件开头存在 BOM 导致下游工具行为不一致。

最小输入

原始字节文件、预期顶层类型和一个已知有效的最小样本。

验证命令或步骤

python3 -m json.tool config.json >/dev/null; printf 'exit=%s\n' $?

预期输出

有效文件输出 exit=0;顶层对象与必填键再由 Schema 验证。

失败输出

Expecting value、Extra data 或 Invalid control character,并带行列位置。

成功判据

原文件由两个独立解析器通过,类型与必填字段符合契约,错误样本仍能被拒绝。

本任务常见错误

  • 用正则替代 JSON 解析器
  • 格式化成功就认为业务字段正确
  • 复制文本时丢失原始编码证据

资料与适用边界

语法边界依据 RFC 8259 与目标语言标准库;Schema 和业务取值范围由使用方契约定义。

证据块复核日期:2026-09-04

相关站内页面

资料依据与复核边界

资料复核日期:2026-08-29