JSON 与 YAML 互相转换
在 JSON 与 YAML 之间转换
JSON 和 YAML 用两种语法描述同样的数据 — 映射、列表、字符串、数字、布尔值和 null。JSON 是 API 和包文件的语言;YAML 则是 Docker、Kubernetes、GitHub Actions 和 CI 流水线配置文件的语言。此转换器即时把一种转为另一种,并处理那些让人踩坑的细节:引号、缩进,以及 YAML 当作布尔值的奇怪单词。
步骤
- 1 选择方向并把文档粘贴到上方框中。结果随输入显示在下方。
- 2 设置缩进宽度 — 2 个空格是 YAML 以及多数 JSON 风格指南的惯例。
- 3 复制结果、下载为文件,或把输出作为新的输入来检查往返是否一致。
两种格式之间有什么变化
YAML 去掉了花括号、方括号和大部分引号,用缩进表示结构,所以 40 行的 JSON 对象会变成 25 行的 YAML 文档。键保持原有顺序。列表变成短横线条目,嵌套对象变成缩进块;空对象或空列表仍写作 {} 或 []。反向转换时 YAML 注释会丢失,因为 JSON 没有注释。
为什么有些字符串带引号
在 YAML 中,不带引号的 yes、no、on、off、true 或 null 会被读作布尔值或 null,123 或 1.0 会被读作数字。看起来像这些的字符串必须加引号,否则在返回时会改变类型 — 经典例子是国家代码 NO 变成 false。转换器恰好只给这些字符串加引号,另外还有首尾有空格、含有冒号加空格或以特殊字符开头的字符串;其余保持不带引号以便阅读。
多行字符串
包含换行的字符串会写成 YAML 块标量:键所在行放一个竖线,文本缩进写在下方,字符串末尾没有换行时加一个减号。这就是你在 Kubernetes 清单和 CI 文件中看到的形式,读回时得到完全相同的字符串。
缩进与兼容性
转换器输出 YAML 1.2,所有现代解析器都能读取 — PyYAML、js-yaml、Go yaml、Ruby Psych。嵌套键按你选择的宽度缩进;列表中对象的键则始终位于短横线后两个空格处,这是规范的要求。永不使用制表符。
JSON 与 YAML 转换 - 常见问题
从 JSON 到 YAML 是无损的:所有值和键顺序都保留,转回去得到同样的 JSON。从 YAML 到 JSON,注释和锚点会被解析掉,因为 JSON 无法表达它们。
相关转换工具
Word转PDF
免费把 Word 转成 PDF:上传 DOC、DOCX、ODT 或 RTF 文件,几秒内下载排版完好的 PDF,无需注册。
PDF转Word
免费把 PDF 转成 Word:上传 PDF,几秒内下载可编辑的 DOCX 文件,无需注册,也没有水印。
图片转换器
免费图片转换器:选择 PNG、JPG、WebP、GIF 或 BMP,在浏览器中完成转换,照片不会上传到服务器。
WebP转PNG
免费把 WebP 转为 PNG:保留透明度,图片始终留在你的设备上,整个转换都在浏览器中完成。
PNG转JPG
免费把 PNG 转为 JPG:可选择画质和透明区域的背景色,全程在浏览器中完成,无需上传。
您可能喜欢的其他工具
MD5生成器
免费 MD5 生成器:在浏览器中把文本或文件转换为 MD5 校验值,适合完整性校验与快速比对。
Base64编码器和解码器
免费 Base64 编码与解码:在浏览器中将文本或文件转为 Base64 并还原,数据不会上传到服务器。
字数统计器
免费字数统计:粘贴文本即可统计字数、字符、句子与段落,并估算阅读时间,内容不会离开浏览器。
字符计数器
免费字符统计:统计含空格与不含空格的字符数、词数和行数,并检查标题与元描述的 SEO 长度限制。
关键词密度检查器
免费关键词密度分析:粘贴文本或网址,查看每个词与短语出现的次数及占比,辅助内容优化。