无需登录 数据私有 本地保存

JSON转YAML工具 - 在线配置格式互换

37
0
0
0

JSON ⇄ YAML 在线转换工具

免费在线配置格式互换 · 双向转换 · 实时预览 · 数据纯本地处理,安全无忧

缩进
数据仅本地处理,不上传服务器
JSON
就绪 0 字符
YAML
等待输入 0 字符
JSON转YAML YAML转JSON 配置格式互换 在线转换工具 Docker Compose K8s配置 Ansible 数据序列化

常见问题与知识点

JSON(JavaScript Object Notation)使用大括号 {}、方括号 [] 和双引号来组织数据,语法严格,不支持注释。
YAML(YAML Ain't Markup Language)使用缩进表示层级关系,语法更简洁易读,支持注释(#),是配置文件的首选格式。YAML 是 JSON 的超集,所有合法的 JSON 都是合法的 YAML。

许多现代开发工具(如 Docker Compose、Kubernetes、Ansible、GitHub Actions、CI/CD 配置)都使用 YAML 作为配置格式。将 API 返回的 JSON 数据或现有 JSON 配置文件转换为 YAML,可以提升可读性,方便人工编辑和维护,同时保留注释来说明配置项的含义。

强烈建议使用空格。YAML 规范明确规定使用空格进行缩进,不允许使用 Tab 字符。使用 Tab 会导致解析错误。常见的缩进习惯是 2 个空格(如 Docker Compose、GitHub Actions)或 4 个空格(如 Ansible)。本工具默认使用 2 空格缩进,您可以根据需要切换为 4 空格。

请检查输入内容是否符合格式规范:
JSON 输入:确保所有键名使用双引号,没有尾随逗号,括号正确闭合。可以使用「美化」按钮自动格式化并检测错误。
YAML 输入:确保缩进一致(统一使用空格),冒号后有空格,避免使用 Tab。本工具会在输入面板上方显示具体错误信息,帮助您快速定位问题。

JSON 优点:解析速度快,几乎所有编程语言原生支持,适合 API 数据传输,结构严格不易产生歧义。
JSON 缺点:不支持注释,层级深时括号嵌套难以阅读,对人工编辑不友好。
YAML 优点:可读性极强,支持注释、锚点和引用,非常适合配置文件。
YAML 缺点:解析速度较慢,缩进敏感容易出错,不同解析器行为可能略有差异。

绝对安全。所有转换操作都在您的浏览器本地完成,使用纯前端 JavaScript(js-yaml 库)进行处理。您的数据不会以任何形式上传到服务器,即使断开网络连接后工具依然可以正常使用。处理敏感配置文件(如包含密码、密钥的 YAML)时也无需担心数据泄露。

YAML 支持以下 JSON 不具备的特性:
注释:使用 # 添加说明文字
锚点与引用:使用 &anchor*anchor 复用数据块
多行字符串:使用 |> 优雅地表示长文本
数据类型标记:如 !!int!!str 等显式类型声明
多文档支持:一个 YAML 文件可以包含多个文档(用 --- 分隔)
注意:从 YAML 转换为 JSON 时,这些特性可能会丢失或转换。

YAML 特别适合以下场景:
容器编排:Docker Compose、Kubernetes 资源定义
CI/CD 流水线:GitHub Actions、GitLab CI、Jenkins Pipeline
自动化运维:Ansible Playbook、SaltStack 配置
应用配置:Spring Boot、Symfony、Rails 等框架的配置文件
文档元数据:Markdown Front Matter(如 Jekyll、Hugo)
在这些场景中,YAML 的可读性和注释支持远超 JSON。

JSON 数组在 YAML 中使用 - 短横线表示列表项,每个元素前加一个短横线和空格。嵌套对象通过缩进体现层级关系。例如 JSON {"items":[{"id":1,"name":"A"},{"id":2,"name":"B"}]} 转换为 YAML 后变为多行缩进格式,每行一个列表项,结构清晰直观。您可以使用本工具的「示例」功能查看实际转换效果。

对于批量转换需求,建议使用命令行工具:
Node.js:使用 js-yaml 包,编写脚本批量处理
Python:使用 PyYAML 库,配合 json 模块
在线批量:本工具支持单次转换,您可以逐个粘贴或通过 API 脚本调用
对于一次性的大量文件转换,命令行脚本是最高效的选择。本工具更适合单文件快速预览和转换。