YAML ↔ JSON 转换

YAML 与 JSON 双向互转,实时校验。

什么是YAML ↔ JSON 转换?

YAML与JSON互转工具可以把YAML配置文件转换成JSON对象,或者反过来把JSON转换成YAML格式。JSON是JavaScript对象表示法的严格子集,语法上要求引号和大括号;YAML则更贴近自然阅读习惯,用缩进表达层级,省略了大部分引号和括号,常用于Kubernetes、Docker Compose、GitHub Actions等配置文件。 从技术角度看,任意合法的JSON其实都是合法的YAML(YAML 1.2兼容JSON语法),所以JSON转YAML总能成功;但YAML转JSON时,如果YAML里用到了注释、锚点引用(&anchor/*alias)、多文档分隔符(---)等JSON不支持的特性,转换时这些信息会被展开或丢弃,只保留最终的数据结构。

为什么使用YAML ↔ JSON 转换?

常见场景:把Kubernetes的deployment.yaml转成JSON方便用jq处理或喂给某些只接受JSON的接口;把接口返回的JSON配置转成YAML,写进CI/CD流水线文件里方便人工阅读和维护;排查YAML缩进错误时,转成JSON能直观看到实际的嵌套层级是否符合预期。相比手写转换脚本,在线工具即时校验格式是否合法,出错时能提示大致位置。

使用示例

YAML转JSON

输入: name: demo port: 8080 tags: - web - api 转换后:{"name":"demo","port":8080,"tags":["web","api"]}

JSON转YAML

输入:{"server":{"host":"0.0.0.0","port":3000}} 转换后: server: host: 0.0.0.0 port: 3000

使用提示

YAML对缩进层级敏感,同一层级的字段缩进空格数必须一致,转换失败时优先检查是否有缩进不对齐或Tab/空格混用的情况。

常见问题

YAML → JSON 转换支持锚点、多文档吗?
支持标准 YAML 语法(含锚点 &/别名 *),但只解析第一个文档;多文档 YAML(用 --- 分隔)请拆分后分别转换。
JSON → YAML 转换后缩进是多少?
使用 js-yaml 默认缩进(2 个空格),并按键的原始顺序输出,数组会渲染成 "- " 列表形式。
数据会上传服务器吗?
不会。转换基于浏览器本地加载的 js-yaml 库完成,不发起任何网络请求。
所有JSON都能转成YAML吗?
可以,JSON是YAML的语法子集,任何合法JSON都能无损转换为等价的YAML。
YAML里的注释转JSON后去哪了?
JSON格式本身不支持注释,转换时注释会被丢弃,只保留数据本身,如果需要保留注释建议只在YAML源文件里维护。
缩进用Tab还是空格有影响吗?
YAML规范不允许用Tab缩进层级,只能用空格,如果原文件混用Tab会导致解析失败,需要先统一替换为空格。
数字和布尔值转换后类型会变吗?
不会,工具会尽量保留原始类型,比如YAML里的true、8080会分别转成JSON的布尔值true和数字8080,而不是字符串。

相关工具

相关教程

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。