ENGINEERING PLAYBOOK
JSON 格式校验与错误定位
JSON 能被解析只说明语法成立,不代表字段类型、必填项或业务约束正确。应先做语法解析,再使用明确的数据契约验证结构。
适用人群:需要定位 JSON 语法位置并区分编码、类型和结构问题的开发人员
排查路径
- 确认输入是完整 JSON 文本而非 JavaScript 对象字面量。
- 定位引号、转义、逗号和括号错误。
- 检查数字范围、Unicode 与重复键策略。
- 再用 Schema 或应用校验器检查结构。
执行步骤
- 保存原始输入并确认 UTF-8 编码。
- 使用标准解析器而不是正则校验 JSON。
- 记录解析器给出的行列位置。
- 明确空值、缺失字段与空字符串的差异。
- 为未知字段和版本升级制定策略。
可复制命令与示例
Python 语法校验
python3 -m json.tool input.json >/dev/nullNode.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