JSON 转 YAML

把 JSON 配置转成 YAML:缩进可选、键可排序,长字符串不折行,错误定位到行列。

文件不上传 .json、.txt 单文件最大 10MB
文件不上传

参数

每层缩进的空格数(2 / 4 / 6 / 8)。

递归排序所有对象的键,方便 diff 两个配置。

这个工具做什么

把 JSON 配置转成 YAML:接口返回的数据要抄进 K8s manifest、GitHub Actions 或 docker-compose 时,手工缩进最容易出错,这里粘贴即得,缩进宽度可选,长字符串不折行。

与站内的「YAML 转 JSON」是一对:两个方向的转换使用同一套解析器,往返转换不会悄悄改变语义。转换全部在浏览器内完成,配置内容不上传。

如何使用

  1. 第一步:粘贴 JSON 整段 JSON 粘进输入框。如果语法有错(少个逗号、多个括号),会直接告诉你第几行第几列附近有问题,而不是给出一份错误的 YAML。
  2. 第二步:调缩进与排序 缩进默认 2 空格(K8s 与 GitHub Actions 的惯例),可改为 4 / 6 / 8。打开「键名排序」后所有对象的键按字母序输出,方便对比两份配置的差异。
  3. 第三步:复制结果 结果会随参数自动重算。长字符串(URL、密钥、正则)不会被折行,复制出去就能直接用。

限制与边界

只做格式转换,不做 JSON Schema 校验、不做注释保留——JSON 本身没有注释,所以转出的 YAML 也没有;若需要注释请转换后手工补充。超过 2^53−1 的整数会丢精度。单文件上限 10MB,超出会明确报错。

常见问题

为什么长字符串没有折行?

刻意为之。YAML 的折叠标量(>-)语义上等价,但复制时会带回换行,URL 或密钥就坏了。lineWidth 设为 -1 表示永不折行。

转换后键的顺序变了吗?

默认保留 JSON 的书写顺序。打开「键名排序」才会按字母序输出——这个选项是为了 diff 两份配置时更省眼。

转回去还是原来的 JSON 吗?

语义上等价:用站内「YAML 转 JSON」转回去,结构与数值一致。但书写顺序若开了排序会改变,数字格式(1.0 与 1)可能被规范化——语义等价,字面不完全相同。

JSON 里的注释会保留吗?

JSON 没有注释语法,所以源里也不会有;转出来的 YAML 自然不含注释。想要带注释的配置,先转 YAML 再手工补注释即可。

支持 JSON5 或带尾逗号吗?

不支持——本工具按标准 JSON 解析,尾逗号、单引号、无引号键都会报错并给出位置。先用 JSON 格式化工具把文件修成标准 JSON,再转 YAML。

数据会上传吗?

不会。转换在浏览器内完成,页面不发送包含配置内容的请求;密钥、内网地址这类内容不会离开设备。

相关工具