JSON 转 YAML 在线工具 — JSON YAML 格式转换
把 JSON 转成 YAML(缩进选择、键排序、错误定位)
在浏览器中处理 · 不上传任何内容
功能简介
YAML 是一种便于人阅读和编辑的配置格式,Kubernetes 清单、GitHub Actions、Docker Compose 等众多工具都在用。手上的 API 响应或配置是 JSON、又需要 YAML 时,粘贴到这里即可,粘贴后立刻出结果。
使用方法
- 把 JSON 粘贴到输入框。
- 选择 2 或 4 个空格缩进。大多数 YAML 工具习惯用 2 个空格。
- 想让每一层的键都按字母顺序排列,就开启“键排序”。
- 复制结果。JSON 有错误时会显示行号和列号。
工作原理
- 输入是符合 RFC 8259 的严格 JSON。输出由 js-yaml 库生成,兼容 YAML 1.2 核心模式(core schema)。
- 可能被读成其他类型的字符串,例如
true、null、123、007,会自动加引号,往返转换时类型不变。 - 中文、日文、韩文和 emoji 原样输出,不做转义。
- 自动折行已关闭;同一个值出现多次时会每次都完整写出,不使用锚点和别名(
&、*)。 - 空数组写成
[],空对象写成{}。顶层是字符串、数字等标量时也能转换。 - 超过 2^53 的整数在读取输入时就会被舍入,因此会显示警告。
示例
输入:
{"name":"app","ports":[80,443],"owner":{"姓名":"张三"},"debug":false,"version":"1.0"}
结果:
name: app
ports:
- 80
- 443
owner:
姓名: 张三
debug: false
version: '1.0'
常见问题
把 YAML 再转回 JSON,数据还是一样的吗?
结构和值都会一致。像 "true"、"123" 这类可能被读成其他类型的字符串会加上引号,保证仍是字符串。除非开启键排序,否则键的顺序保持不变。
很长的句子会被折成多行吗?
不会。自动折行已关闭,字符串始终保持在一行,不会被拆开。包含换行的字符串可能会写成 YAML 块标量。
JSON 错误是怎么提示的?
会显示第一个破坏语法的字符所在的行号和列号。末尾多余的逗号、注释等 JSON 不允许的写法也会报错。
超大整数安全吗?
输入由 JavaScript 读取,超过 9007199254740991(2^53-1)的整数会被舍入。发生这种情况时会显示警告,请把这类数字写成字符串。