🌐 ZH

🔄 YAML ↔ JSON / CSV 转换器

双向转换 YAML 和 JSON。适合将配置文件(docker-compose、GitHub Actions、k8s 清单等)转成 JSON 以便程序处理,或将 JSON 转成便于阅读的 YAML。JSON↔CSV 标签页可将扁平数组数据转换为适合电子表格的 CSV。

指南

了解更多

01

1. YAML 与 JSON,何时用哪个

JSON 针对机器间数据交换(API 响应、配置保存)做了优化,语法严格,解析出错少。YAML 基于缩进,支持注释(#),对人类更易读,因此广泛用于配置文件:docker-compose.yml、GitHub Actions 工作流、Kubernetes 清单、Ansible playbook 等。使用本工具可将 YAML 配置转为 JSON 以便程序处理,或将 JSON 数据转为便于阅读整理的 YAML。

02

2. 转换时的注意事项

YAML 能表达的内容比 JSON 更多:锚点(&)、别名(*)、多文档分隔符(---)、块标量(| 和 >)。将使用了这些 YAML 专属特性的文档转为 JSON 时,锚点/别名会被展开为实际值,且多文档中只有第一个会被转换。反过来,JSON→YAML 始终是安全的(因为 JSON 接近 YAML 的一个子集)。看起来像数字的字符串(例如邮编"01234")在 YAML 中如果不加引号,可能会被解释为数字,需要留意。

03

3. JSON ↔ CSV 与嵌套结构

CSV 只能表示表格(行和列),无法直接容纳 JSON 的嵌套对象/数组。本工具会自动将嵌套对象展开(flatten)为"user.name"、"user.age"这样的点号表示法列存入 CSV,反之 CSV→JSON 转换时会根据点号表示法的表头重建原始嵌套结构。数组值(如标签列表)会以 JSON 字符串原样存入单元格,建议直接用于重新导入,而非在电子表格中手动编辑。

常见问题

YAML 支持到什么语法?
使用支持标准 YAML 1.2 语法(映射、序列、标量、注释、锚点/别名、块标量、多种数据类型)的 js-yaml 库,覆盖了实际工作中大多数配置文件的语法。
JSON→CSV 时嵌套对象会怎样处理?
会自动展开为"父.子"形式的点号表示法列。例如 {"user":{"name":"Kim"}} 会变成"user.name"列,值为"Kim"。
包含数组的 JSON 可以转换为 CSV 吗?
最外层必须是对象数组(形如 [{"a":1}])。每个对象内的数组值(如标签列表)会以 JSON 字符串原样存入单元格。
转换结果会发送到服务器吗?
不会。所有转换都完全在浏览器(JavaScript)内完成,你输入的内容不会发送到任何服务器。