反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈! 反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈!
v1.0 · 已上线中英双语纯客户端

YAML⇋JSON 转换YAML ⇋ JSON Converter

YAML 与 JSON 一键双向转换、格式化、校验,调试 K8s manifest、docker-compose、GitHub Actions 配置更快。数据全程不上传。

本周使用—·收藏1,247·版本v1.0.0·最后更新3 天前·完全免费
方向
·缩进
·字符210
输入UTF-8 · 14 行
输出缩进 2 · UTF-8
// 转换结果会显示在这里…
·
执行

工具介绍

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% 的配置场景:

1indent缩进即层级
YAML 用空格缩进表达层级(社区惯例 2 空格):同一层级的键必须严格左对齐,子级要比父级多缩进。Tab 是禁止的,混用 Tab 与空格是最常见的报错来源。
2key: value键值对与注释
key: value 冒号后必须跟一个空格;# 注释 从 # 到行尾都会被解析器忽略。值里若再出现 : (冒号+空格)会被当成新的键,需要给整个值加引号。
3sequences数组的两种写法
块写法每项一行:- item;流式写法与 JSON 最像:[a, b, c]。两种写法可混用,转 JSON 后都是数组。对象同样有块写法与 {a: 1} 流式写法。
4multiline多行字符串
| 保留换行(适合命令、正文);> 把换行折叠成空格(适合长段落);配合 - 修饰符可去掉末尾换行。转 JSON 后变成带 \n 的单行字符串。
5quotes引号规则
大多数值可以裸写不加引号。但以下情况必须加:含「: 」「 #」、前后空格、以特殊字符开头,或想保留字符串类型的数字版本号(如 "1.0")。单引号原样保留,双引号支持 \n 等转义。
6type detect类型自动推断
true / false / null、整数、小数会被自动识别为对应类型,与 JSON 一一对应。注意本工具按 YAML 1.2 解析:yes/no/on/off 是普通字符串(YAML 1.1 里是布尔)。GitHub Actions 的 on: 键名能被正确保留,正是因为 1.2 不把它当布尔。
YAML ⇋ JSON 对照速记
转换前先建立映射直觉,YAML 的每种写法在 JSON 里都有固定对应:
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 步快速入门
1
贴入内容
把 YAML 或 JSON 贴到左侧输入框,或点击「示例」一键填充
2
选方向
顶部工具栏切换 YAML→JSON / JSON→YAML,再选 2 / 4 空格缩进
3
点执行
点击「执行」或按 ⌘+↵,右侧立即显示转换结果,错误时给出定位提示
4
复制 / 交换
点「复制」带走结果,或点「交换」把结果送回输入框反向转换

使用场景

5 个真实案例
01K8s / Docker Compose 调试

manifest 转 JSON 交给脚本处理,或反向把模板渲染结果转回 YAML 部署。

02GitHub Actions / CI 配置

改完 workflow 转 JSON 确认结构,避开 on、true 之类的键名类型陷阱。

03API 联调

后端接口只认 JSON、配置文件是 YAML,来回转换对齐字段结构。

04OpenAPI / Swagger 维护

团队有人习惯 YAML 有人习惯 JSON,一键互转协作不受影响。

05学习 YAML 语法

对照 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 秒。超大文件建议拆分成单文档后分批转换。

相关工具

开发者分类

数据来源

隐私优先
算法:YAML 解析基于开源js-yaml v5(YAML 1.2 Core Schema,并按官方推荐启用<<merge 锚点合并);JSON 侧使用浏览器原生JSON.parse/JSON.stringify。输出不自动折行、不生成引用锚点,方便 diff 与版本管理。
隐私声明:所有转换均在浏览器内存完成,输入内容不上传任何服务器。本工具不记录任何输入、不埋任何分析点。可断网使用,关闭网络后再打开仍能正常使用。