JSON 转 YAML
把 JSON 转成 YAML:可选缩进、折行宽度、键排序与强制引号,@、{、} 等特殊字符自动加引号,非法 JSON 给出精确到行列的报错与结构统计。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
JSON 输入
80
YAML
name: UniKit version: 1.0.0 tags: - tool - frontend author: name: UniKit team homepage: https://example.com email: '@team' private: true
YAML 里的 @、{、}、: # 等特殊字符会自动加引号。
结构统计
键数量
8对象
2数组
1标量
8嵌套深度
2JSON 行数
11YAML 行数
10字节数
146这个工具能做什么
- 给 Kubernetes、GitHub Actions、Docker Compose、Ansible 这些只吃 YAML 的配置写文件时,先按自己习惯写 JSON 再一键转成 YAML。
- YAML 缩进容易出错,用这个工具生成规范缩进(可选 1–8 空格),并可以限制折行宽度,避免长字符串被意外换行影响可读性。
- 转换前先做一次 JSON 校验:非法 JSON 会给出精确到行列的报错和出错那一行的片段,比 JSON.parse 的报错信息更好定位。
- @、{、}、:、# 这类在 YAML 里有特殊含义的字符由 js-yaml 自动加引号,不用自己判断哪个值需要包引号。
示例
输入
{"name":"UniKit","version":"1.0.0","tags":["tool","frontend"]}输出
name: UniKit version: 1.0.0 tags: - tool - frontend
默认缩进 2 空格、折行宽度 80,重复对象默认展开(不生成 &anchor / *alias 锚点)。
常见问题
为什么 version 的 1.0.0 被加了引号?
不加引号也能安全解析,但 1.0 这种值会被读成数字、1.0.0 会被当成非法浮点。js-yaml 保守地给可能产生歧义的标量加引号,保证 YAML 再解析回来类型和原来一致。
anchor 和 alias 是什么,什么时候该关掉?
YAML 里重复出现的同一个对象可以用 &anchor 定义一次、*alias 引用,体积更小但可读性差、很多解析器也不支持。默认的「展开重复对象」会把每个对象写全,给 Kubernetes 之类工具用时更安全。
缩进可以设成 4 空格或 Tab 吗?
缩进可以在 1–8 个空格之间选,输入超范围会自动夹到边界值。YAML 规范禁止用 Tab 缩进,所以这里也不提供 Tab 选项。
折行宽度设成多少合适?
默认 80 列,超过就会在合适的位置折行,长文本在 diff 里更好读。想保持一行不断开就勾选「不限制行宽」,输出会是一行一个值。
我的 JSON 会被上传吗?
不会。解析与序列化都在浏览器本地用 JavaScript 完成,不发网络请求,断网可用。
关键词:json to yamlJSON 转 YAMLyaml转换convertkvconfig序列化