Format Atlas

对比

JSON5 与 JSON

JSON5 保留 JSON 数据模型,同时增加便于手写维护的语法,如注释、标识符键、单引号字符串、尾随逗号和十六进制数。标准 JSON 语法更严格,广泛用于 API 和通用解析器。

应该选择哪种格式?

人工维护的配置只有在所有消费者都支持 JSON5 时才考虑使用。API、标准解析器和广泛互操作场景选择 JSON。

适用于 JSON5

手动编辑的配置文件 · 包含注释的结构化数据

  • 解析器支持 JSON5 时阅读和维护数据
  • 已确认支持 JSON5 的应用设置

适用于 JSON

Web API、配置文件和数据交换

  • 传递结构化数据

基本信息

项目JSON5JSON
扩展名.json5.json
MIME 类型application/jsonapplication/json
常见用途手动编辑的配置文件 · 包含注释的结构化数据Web API、配置文件和数据交换
打开方式需要支持 JSON5 的解析器或工具可使用文本编辑器、IDE或支持JSON的查看器打开。
导出或转换使用明确支持 JSON5 的编辑器或解析器打开。标准 JSON 解析器可能因注释、末尾逗号等语法而报错。可使用应用程序或转换工具将其转换为CSV等格式。

按用途选择

解析器支持 JSON5 时阅读和维护数据

手动编辑的配置文件 · 包含注释的结构化数据

JSON5

已确认支持 JSON5 的应用设置

手动编辑的配置文件 · 包含注释的结构化数据

JSON5

传递结构化数据

Web API、配置文件和数据交换

JSON

关键点 1

JSON5 支持注释、单引号、不加引号的标识符键、尾随逗号、十六进制值以及 Infinity/NaN 语法。这些不属于 RFC 8259 JSON 文法,标准 JSON 解析器可能拒绝它们。

进一步了解差异

关键点 2

JSON5 是语法超集,基本数据模型仍是对象、数组、字符串、数字、布尔值和 null,但需要支持 JSON5 的解析器。不要仅凭文件扩展名或媒体类型推断兼容性。

进一步了解差异

进一步了解差异

当注释和宽松语法有助于维护手写配置,且所有工具明确支持 JSON5 时使用 JSON5。通信和通用交换使用 JSON。转换时应决定如何表示 JSON 不支持的数字,并验证输出是严格 JSON。

  • 标准 JSON 解析器可能拒绝语法有效的 JSON5。请核实具体解析器、编辑器、构建工具或 API 消费方。
  • 转换为 JSON 会丢失注释和格式意图。Infinity 与 NaN 没有直接的 JSON 数值表示,替代方式应由应用定义。
  • 转换后检查重复键、数值范围与精度、字符编码、解析器限制以及最终 JSON 合规性。

常见问题

可以把 JSON5 文件发送给任意 JSON API 吗?

不安全。JSON5 允许标准 JSON 之外的语法。应先用 JSON5 解析器读取,再序列化为严格 JSON,前提是 API 要求 RFC 8259 JSON。

了解详情

参考资料与规范