YAML⇋JSON 转换YAML ⇋ JSON Converter
YAML 与 JSON 一键双向转换、格式化、校验,调试 K8s manifest、docker-compose、GitHub Actions 配置更快。数据全程不上传。
工具介绍
3 段详细说明YAML⇋JSON 转换是面向开发者的一站式格式互转工具,支持 YAML→JSON、JSON→YAML 双向转换、格式化缩进、语法校验。K8s manifest、docker-compose、GitHub Actions 等配置文件粘贴进来,一键得到目标格式。
所有转换都在浏览器内存中完成,文件不上传任何服务器。基于开源 js-yaml v5(YAML 1.2 Core Schema)与浏览器原生 JSON.parse / JSON.stringify,10 MB 以内转换通常在 1 秒内完成。
相比手写转换脚本或编辑器插件,本工具无需安装、打开网页即用。错误时给出「第 X 行 第 Y 列」定位与人话解释,点「交换」还能把结果送回输入框反向转换,往返验证两不误。
基础知识 · YAML 语法
YAML 1.2 · 6 个要点YAML(YAML Ain't Markup Language)是面向配置文件的可读数据序列化格式。它和 JSON 表达能力等价(都是键值对 + 数组的树形结构),区别只在书写方式:YAML 靠缩进与换行,JSON 靠括号与引号。掌握以下 6 个要点即可覆盖 99% 的配置场景:
indent缩进即层级key: value键值对与注释key: value 冒号后必须跟一个空格;# 注释 从 # 到行尾都会被解析器忽略。值里若再出现 : (冒号+空格)会被当成新的键,需要给整个值加引号。sequences数组的两种写法- item;流式写法与 JSON 最像:[a, b, c]。两种写法可混用,转 JSON 后都是数组。对象同样有块写法与 {a: 1} 流式写法。multiline多行字符串| 保留换行(适合命令、正文);> 把换行折叠成空格(适合长段落);配合 - 修饰符可去掉末尾换行。转 JSON 后变成带 \n 的单行字符串。quotes引号规则"1.0")。单引号原样保留,双引号支持 \n 等转义。type detect类型自动推断true / false / null、整数、小数会被自动识别为对应类型,与 JSON 一一对应。注意本工具按 YAML 1.2 解析:yes/no/on/off 是普通字符串(YAML 1.1 里是布尔)。GitHub Actions 的 on: 键名能被正确保留,正是因为 1.2 不把它当布尔。name: 蜗牛工具箱 → "name": "蜗牛工具箱" —— 键值对一一对应。features: + - a + - b → "features": ["a", "b"] —— 块数组变 JSON 数组。tags: [a, b] → "tags": ["a", "b"] —— 流式写法几乎就是 JSON。# 注释 → 无对应 —— JSON 不支持注释,转换后注释会丢失。published: yes → "published": "yes" —— 本工具按 YAML 1.2 解析,yes 保持字符串;旧版 1.1 解析器会给出 true。使用说明
4 步快速入门使用场景
5 个真实案例manifest 转 JSON 交给脚本处理,或反向把模板渲染结果转回 YAML 部署。
改完 workflow 转 JSON 确认结构,避开 on、true 之类的键名类型陷阱。
后端接口只认 JSON、配置文件是 YAML,来回转换对齐字段结构。
团队有人习惯 YAML 有人习惯 JSON,一键互转协作不受影响。
对照 JSON 输出理解缩进层级、数组、多行字符串到底映射成了什么。
常见问题
10 个问答YAML⇋JSON 转换工具是什么?有什么用?
把 YAML 配置一键转成 JSON(或反向),支持缩进控制、格式化输出、语法校验。常用于调试 K8s manifest、docker-compose、GitHub Actions 等 YAML 配置,或与只认 JSON 的系统对接。
我的数据会上传到服务器吗?
不会。所有转换在浏览器内存中完成,输入内容不上传任何服务器。可断网使用,关闭网络后再打开仍能正常使用。
YAML 里的注释转 JSON 后去哪了?
会丢失。JSON 语法不支持注释,转换时所有 # 注释都会被剥离,这是格式本身的限制,不是工具 bug。反向转换(JSON→YAML)同样无法凭空恢复注释。
为什么版本号 1.0 转换后变成了数字?
YAML 会自动推断类型:1.0 被识别为数字。想保留字符串请加引号写成 "1.0"。同理 true/false/null、整数、小数都会自动识别,加引号可强制按字符串处理。
支持多个 --- 分隔的 YAML 文档吗?
本工具一次只转换一个文档。检测到多个文档时会明确提示「输入里有多个 YAML 文档」,删掉多余的或只保留一个再转换即可。
Tab 缩进为什么报错?
YAML 规范禁止用 Tab 缩进,只允许空格。报错时会精确指出 Tab 所在行列。编辑器建议开启「空格替换 Tab」(一般 1 个 Tab = 2 个空格)。
转换会丢失数据吗?
数据结构完全无损。唯一会丢的是注释(JSON 不支持)。标量类型按 YAML 1.2 规范自动推断:yes/no/on/off 按 1.2 处理为普通字符串(与 YAML 1.1 的布尔行为不同),涉及旧配置时请留意。
JSON 里的 null 和深层嵌套转 YAML 后什么样?
null 转为 null 或 ~,对象缩进为键值对,数组用 - 逐行列出,深层嵌套按缩进层级展开。本工具输出不自动折行、不生成 &ref 引用,长字符串也保持单行,方便 diff 和版本管理。
移动端能用吗?
支持。移动端输入/输出自动垂直堆叠,操作按钮自适应布局。手机上可粘贴微信 / 飞书里收到的配置片段直接转换。
支持多大的文件?
建议 ≤ 10 MB。js-yaml 纯 JS 解析,1 MB 以内几乎瞬时,5 MB 大约 1-2 秒。超大文件建议拆分成单文档后分批转换。
相关工具
开发者分类数据来源
隐私优先js-yaml v5(YAML 1.2 Core Schema,并按官方推荐启用<<merge 锚点合并);JSON 侧使用浏览器原生JSON.parse/JSON.stringify。输出不自动折行、不生成引用锚点,方便 diff 与版本管理。