YAML 与 JSON 互转

双向转换,多文档与锚点展开,保留类型推断提示。

值用单行流式风格按键名排序
输入
输出

YAML 与 JSON 是同一份数据的两种写法:JSON 用逗号、引号和大括号描述结构,适合机器传输;YAML 用缩进和冒号描述结构,适合人来写配置。这个工具在浏览器里把两者互相转换,粘贴即出结果,文本不会离开本机。

难点不在语法搬运,而在类型口径:本工具按 YAML 1.1 的宽松约定解析(yes/no、日期、八进制都会被还原成对应的值),再落到只有 true/false、字符串和数字的 JSON 里。所有类型边界都会以提示条的形式写明,转换前就能看清哪些值被改写了。

YAML 与 JSON 互转怎么用

  • YAML → JSON:选「YAML → JSON」,支持多文档:用 --- 分隔的多个文档会合并成一个 JSON 数组,并在提示条说明文档数量。
  • JSON → YAML:选「JSON → YAML」,可调缩进宽度(1–8 空格)、是否把值压成单行流式风格、是否按键名排序。
  • 键名排序:打开「按键名排序」后两个方向都会递归排序对象键名,方便用 diff 对比两份配置文件。

常见问题

为什么 yes / no / on / off 变成了 true / false?

YAML 1.1 把它们当布尔值,这是著名的「挪威问题」(连国家码 NO 都会被当成 false);JSON 和 YAML 1.2 只认 true/false。如果你要的是 1.2 口径,请把这些值加上引号再转换。

日期会变成什么?2026-01-01 呢?

日期与时间戳会被解析成日期对象,输出时序列化成 ISO 8601 字符串(如 2026-01-01T00:00:00.000Z),而不是毫秒数。反向转换时 YAML 认得这种 ISO 写法。

锚点、二进制和超大整数会怎样?

锚点 & 与别名 * 在 JSON 里被展开成各自独立的副本,引用关系丢失;!!binary 转成 Base64 字符串放在 {"__binary": …};0o755、0x1f 按 YAML 1.1 转成十进制;超过 2^53 的整数末位可能失真,这几类情况都会给出提示。

对应功能编号 #2无需安装,手机端同样可用按 Ctrl + K 换工具