对比
JSON vs YAML
JSON 是常用于 API 和程序间数据交换的严格文本格式。YAML 的语法适合人工编辑配置和结构化数据。应结合工具生态与工作流选择。
应该选择哪种格式?
可互操作的 API 数据和程序间交换通常用 JSON。需要注释和简洁层级、由人编辑的配置可考虑 YAML,并用目标解析器验证。
适用于 JSON
Web API、配置文件和数据交换
- 传递结构化数据
适用于 YAML
配置文件和结构化数据编写
- 由人维护的配置
基本信息
| 项目 | JSON | YAML |
|---|---|---|
| 扩展名 | .json | .yaml, .yml |
| MIME 类型 | application/json | application/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 可能更合适。