Format Atlas

对比

JSON vs YAML

JSON 是常用于 API 和程序间数据交换的严格文本格式。YAML 的语法适合人工编辑配置和结构化数据。应结合工具生态与工作流选择。

应该选择哪种格式?

可互操作的 API 数据和程序间交换通常用 JSON。需要注释和简洁层级、由人编辑的配置可考虑 YAML,并用目标解析器验证。

适用于 JSON

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

  • 传递结构化数据

适用于 YAML

配置文件和结构化数据编写

  • 由人维护的配置

基本信息

项目JSONYAML
扩展名.json.yaml, .yml
MIME 类型application/jsonapplication/yaml
常见用途Web API、配置文件和数据交换配置文件和结构化数据编写
打开方式可使用文本编辑器、IDE或支持JSON的查看器打开。可使用文本编辑器或YAML工具打开,并保留空格缩进。
导出或转换可使用应用程序或转换工具将其转换为CSV等格式。当接收方要求JSON时请转换,并检查值类型和字符编码。

按用途选择

传递结构化数据

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

JSON

由人维护的配置

配置文件和结构化数据编写

YAML

关键点 1

JSON 用明确语法表示对象和数组,是标准化的数据交换格式。

进一步了解差异

关键点 2

YAML 支持注释和灵活、易读的表示方式,常用于配置文件。

进一步了解差异

进一步了解差异

选择工具链能一致支持的格式。对数据进行校验,避免含义不明确的 YAML 写法,并对不可信输入使用安全解析方式。

  • JSON 语法较严格,可让不同环境中的生成和解析更可预测。
  • YAML 可能更便于人工编辑,但缩进和解析器规则必须保持一致。
  • 当字段和类型对应用很重要时,两者都需要按模式验证。
  • 不要把 YAML 当作 JSON 的严格超集。应遵循接口要求的格式,并测试解析器行为,因为不同 YAML 实现对某些普通值的解释可能不同。

常见问题

YAML 一定比 JSON 容易用吗?

并非对所有团队和工具都如此。YAML 常便于手工维护配置;JSON 则常用于 API 和严格的机器间交换。

YAML 一定更适合配置吗?

不一定。YAML 对人类可能更易读,但工具要求 JSON 或解析一致性重要时,JSON 可能更合适。

了解详情

相关用途与检查步骤

选择配置文件格式选择 Web 数据与配置格式

参考资料与规范