json的几种标准格式

JSON 的几种标准格式(以及最常见的实际使用变体)

JSON(JavaScript Object Notation)本身在官方标准(RFC 8259 / ECMA-404)中只有一种核心语法,但在实际使用中,因为不同的场景、约定、风格、工具链,衍生出了几种被广泛认可的“格式风格”。

下面按规范性 + 流行度排序,列出目前最常见的几种 JSON “格式”:

序号格式名称是否官方标准缩进风格键是否必须加引号主要使用场景代表性工具/生态推荐程度(2025-2026)
1标准紧凑格式(Compact)无缩进必须网络传输、API 返回、存储、日志几乎所有 JSON 库默认★★★★★(传输首选)
2标准美化格式(Pretty / Formatted)2 或 4 空格必须配置文件、调试、可读性优先jq、VS Code、Postman、浏览器 DevTools★★★★★(阅读首选)
3JSON5否(扩展)支持无引号键可选配置文件、手写 JSON、开发阶段json5 库、部分 IDE、Vite 配置★★★★☆(配置常用)
4JSONC(带注释)否(扩展)同标准必须配置文件(允许 // 和 /* */ 注释)VS Code settings.json、tsconfig.json★★★★☆(开发常用)
5HJSON否(扩展)更宽松可省略引号人类友好配置文件hjson 库(较小众)★★☆☆☆
6JSON Lines / NDJSON否(约定)每行一个对象必须日志、流式数据、大文件处理Logstash、Fluentd、Kafka、ClickHouse★★★★★(大数据/日志)
7GeoJSON是(RFC 7946)标准 JSON必须地理空间数据GIS 系统、地图服务领域专用
8JSON-LD是(W3C)标准 JSON必须语义网、结构化数据、SEOSchema.org、Google 搜索领域专用

最常用的几种格式示例对比

1. 标准紧凑格式(Compact JSON)

{"id":123,"name":"张三","age":28,"isActive":true,"tags":["java","python"],"address":{"city":"上海","zip":200000}}

2. 标准美化格式(Pretty JSON)—— 2空格 / 4空格 都常见

{
  "id": 123,
  "name": "张三",
  "age": 28,
  "isActive": true,
  "tags": ["java", "python"],
  "address": {
    "city": "上海",
    "zip": 200000
  }
}

3. JSON5(开发配置中最受欢迎的扩展)

{
  // 支持单行注释
  id: 123,           // 键可以不加引号(合法标识符)
  name: "张三",
  age: 28,
  isActive: true,

  // 支持尾随逗号
  tags: [
    "java",
    "python",
    "golang",        // ← 最后一个逗号合法
  ],

  address: {
    city: '上海',
    zip: 200000,
    note: '可以单引号'
  }
}

4. JSONC(带注释 JSON)

{
  "id": 123,
  "name": "张三",
  // 这里是单行注释
  "age": 28, /* 这是块注释 */
  "tags": ["java", "python"]
}

5. JSON Lines / NDJSON(每行一个独立 JSON 对象)

{"id":1,"name":"张三","time":"2025-01-01"}
{"id":2,"name":"李四","time":"2025-01-02"}
{"id":3,"name":"王五","time":"2025-01-03"}

快速决策表(你应该用哪种?)

场景强烈推荐格式为什么常见工具/库支持情况
HTTP API 返回紧凑 JSON体积小、解析快所有语言都原生支持
调试 / 日志查看美化 JSON(2或4空格)可读性第一jq、python -m json.tool
配置文件(手写)JSON5 或 JSONC允许注释、尾随逗号、无引号键VS Code 原生支持 JSONC
大规模日志 / 数据管道JSON Lines / NDJSON可逐行读取、不需要一次性加载全部fluentd、logstash、spark
需要人类长期维护的配置JSON5最接近 JavaScript 对象字面量json5 库、部分前端构建工具
安全敏感、不可信来源标准 JSON(紧凑或美化)拒绝任何扩展语法,最高兼容性

小结口诀(背下来就够用)

  • 传网路上 → 紧凑(Compact)
  • 给人看 → 美化(Pretty)
  • 自己写配置 → JSON5 / JSONC
  • 日志流式 → JSON Lines / NDJSON
  • 安全第一 → 只认标准 JSON

你现在最常遇到的是哪一种 JSON 格式的使用困惑?

  • API 返回格式太大了想压缩?
  • 配置文件想加注释?
  • 日志系统要处理海量 JSON?
  • 还是想知道怎么在代码里优雅输出美化 JSON?

告诉我具体场景,我可以给你对应的代码示例或工具推荐。

文章已创建 4237

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部