← 返回博客首页

JSON 格式化与验证工具使用教程

什么是 JSON?

JSON(JavaScript Object Notation)是当前 Web API 最主流的数据交换格式,占比超过 90%。它基于 ECMA-404 和 RFC 8259 标准,以简洁、易读的键值对结构,成为前后端通信的事实标准。

JSON 基本语法规则

JSON 的语法非常严格,一个合法的 JSON 文档必须遵循以下规则:

  • 键名必须使用双引号"key" 而非 key'key'
  • 字符串必须使用双引号"value" 而非 'value'
  • 不允许尾随逗号:最后一个元素后面不能有逗号
  • 不支持注释:JSON 本身不支持注释,需要在外部处理
  • 必须使用 UTF-8 编码:这是推荐的标准编码方式

JSON 支持的数据类型

  • 字符串(String):双引号包裹的 Unicode 字符序列
  • 数字(Number):整数或浮点数,无引号包裹
  • 布尔值(Boolean):truefalse
  • 数组(Array):方括号包裹的有序值列表,如 [1, 2, 3]
  • 对象(Object):花括号包裹的键值对集合,如 {"key": "value"}
  • null:表示空值

JSON 格式化与验证

为什么需要格式化?

在实际开发中,JSON 数据通常以压缩格式传输(Minified),所有空格和换行都被移除,以减小传输体积。压缩后的 JSON 可减少 30-50% 的传输大小,但完全不可读。格式化工具可以将压缩的 JSON 转换为结构清晰的层级格式,缩进通常使用 2 个空格。

验证的重要性

JSON 解析错误是前端开发中最常见的错误之一。常见的错误包括:

  • 多余的逗号
  • 缺少引号
  • 括号不匹配
  • 使用单引号替代双引号
  • 不合法的转义字符

使用 JSON 验证工具可以在开发阶段快速定位这些问题,避免运行时错误。

JSON Schema 校验

JSON Schema 是一种强大的数据验证工具,它允许你定义 JSON 数据的结构约束:

  • 指定哪些字段是必需的
  • 定义字段的类型和格式
  • 设置数值范围或字符串长度限制
  • 枚举允许的值
  • 嵌套对象的验证规则

在 CI/CD 流程中集成 JSON Schema 验证(如使用 ajv 库),可以提前发现 API 数据格式问题。

大 JSON 处理建议

对于超过 100MB 的 JSON 文件,一次性加载到内存可能会导致内存溢出。建议使用流式解析器:

  • simdjson:解析速度可达 2.5 GB/s,是目前最快的 JSON 解析库
  • ijson(Python):惰性迭代解析,适合处理超大文件
  • 使用 JSON 在线工具先验证结构,再在本地用流式方式处理

JSON 安全注意事项

  • 永远不要使用 eval() 解析 JSON,这会导致代码注入风险
  • 使用 JSON.parse() 或标准库进行解析
  • 警惕原型链污染攻击(__proto__
  • 对不可信的 JSON 数据始终进行验证和清理
← 返回博客首页