YAML 转 JSON
在 YAML 与 JSON 之间双向转换,缩进可配置。支持嵌套映射、列表与多行字符串,语法出错时会指出具体位置。
把 YAML 转成 JSON,或把 JSON 转成 YAML,缩进可以配置。嵌套映射、列表、带引号的字符串、多行块标量和锚点都能处理,语法出错时会指出造成问题的位置,而不是悄悄失败。
这是两种格式之间日常的桥梁:用 YAML 写的 Kubernetes 或 CI 配置文件需要变成 JSON 才能用于 API 调用,或者 JSON 载荷必须手工修改,而在 YAML 里改起来容易得多。转换在你的浏览器里完成,所以含有令牌或内部主机名的配置文件永远不会离开你的设备。
如何在 YAML 与 JSON 之间转换
粘贴 YAML 或 JSON
选择转换方向与缩进
复制转换后的输出
常见问题
支持哪个方向?
两个方向都支持:YAML 转 JSON 和 JSON 转 YAML。JSON 是 YAML 的子集,所以合法的 JSON 总能干净地转换;而 YAML 用到的一些特性 JSON 并没有,转换时它们会被展开。
我 YAML 里的注释会怎样?
注释不属于数据模型,所以转成 JSON 时会被丢掉。如果注释很重要,请把原始文件当作唯一可信来源保留下来。
多行字符串会保留吗?
会,块标量和字面量字符串在 JSON 里会变成普通字符串,换行以转义过的换行符形式保留。
为什么我的 YAML 解析失败?
常见原因是缩进不一致、用制表符代替空格,或者值里出现了没有加引号的冒号。错误信息会指出解析停止所在的行与列。
它处理得了很大的配置文件吗?
可以,几 MB 的文件都能瞬间转换。实际限制是你的设备内存,而且一切都只在本地处理。
我的配置会被上传吗?
不会。这一点很重要,因为配置文件里往往含有凭证、令牌和内部主机名。
一览
| 输入 | 文本 |
|---|---|
| 多个文件 | 否 |
| 运行位置 | 在你的浏览器中——文件永远不会被上传 |
| 离线可用 | 是 — 页面加载完成后 |
| 价格 | 免费,无需注册,无水印 |
选择数据格式
JSON 是 API 返回以及程序读取的任何数据的默认格式:它天然处理嵌套结构、数字、布尔值和 null,而且每种语言都能解析它。CSV 更小,能直接打开进表格软件,但它无法表达嵌套,在分隔符、引号规则和字符集上也没有共同标准——而这正是转换出错的地方。XML 冗长,但能承载属性、混合内容和模式,所以它仍然主导着文档格式和遗留系统集成。YAML 对配置来说最易读,但它对空白敏感,还有出人意料的类型强制转换(「no」会变成 false,像 1.10 这样的版本号会变成 1.1)。请选择使用方工具偏好的格式,而不是看起来最漂亮的格式。
转换在哪里悄悄出错
大多数转换缺陷与语法无关,而与含义有关。一列邮编的 CSV 字段会在表格软件猜它是数字的那一刻丢掉前导零;一个很长的 ID 会超出浮点精度;日期会因为先写日还是先写月而意思大变。JSON 的键是无序的,但数组是有序的,排序键的工具不会改变任何东西,而排序数组的工具会改变数据。Unicode 是另一个陷阱:文本可能以 UTF-8、UTF-16 或带字节顺序标记的形式到来,解码器猜错就会把带重音的字符变成乱码。在信任任何转换之前,抽查第一行和最后一行、任何带前导零的字段,以及任何含有引号、逗号或换行的字段。