JSON 与数据处理指南
JSON5、JSON 修复与格式化:三种操作如何选择
合法 JSON 用格式化,明确方言用 JSON5,损坏数据的修复结果必须复核。
格式化处理合法值
格式化调整缩进等表现,不可能在不做额外推断的情况下理解任意错误语法。
处理接口响应时先校验,不合法则判断来源究竟是明确方言还是损坏数据。
JSON5 是明确的语法扩展
JSON5 允许注释、单引号、尾逗号和部分未引用键名,但这些并不是标准 JSON。
来源约定 JSON5 时采用相应解析,再导出标准 JSON 供要求 RFC 8259 语法的接收方使用。
// JSON5 input
{name:'Ada',active:true,}
// Standard JSON output
{"name":"Ada","active":true}修复会推断语法
修复可能补标点、闭合字符串和容器,结果合法不代表恢复了作者原意。
使用前查看修复差异,网络响应如果被截断,应重新取得完整来源而非推断缺失记录。
复核数据与精度
重复键与特殊数值需要单独决策,标准 JSON 排除 NaN、Infinity;JSON5 解析器可能使用原生 JavaScript 数值。
本站拒绝不安全 JSON5 整数和非有限值,避免把舍入或替换结果当作无损转换,下游格式也需要核对。