按 ⌘K 切换工具
FORMAT & CONVERT
JSON ↔ YAML 转换工具
双向转换JSON和YAML格式数据。
json-yaml
§01 关于此工具
概述
JSON 和 YAML 表达的是同一套数据模型,但各个生态的选择并不统一:Kubernetes、 CI 流水线和 Ansible 用 YAML,而 API 和 JavaScript 工具链用 JSON。于是同一份配置 常常要在两种写法之间来回搬运。这个转换器由运行在浏览器本地的 js-yaml 驱动, 在两个方向上即时互转,不需要装任何命令行工具。
两边的取舍也很实际:YAML 靠缩进表达层级,写起来省字符,还允许写注释; JSON 的结构更死板,但没有歧义,几乎任何语言的标准库都能直接解析。
使用方法
- 用 JSON → YAML 或 YAML → JSON 标签页选择转换方向。
- 把输入粘贴到 JSON(或 YAML)输入框,输出框会随着你的输入同步更新。
- 如果输入无法解析,错误信息会显示在两个输入框之间;没有问题就直接复制结果。
示例
{"name":"sitekits","tags":["a","b"]}→
name: sitekits
tags:
- a
- b
- 反方向则把这段 YAML 还原成两空格缩进的格式化 JSON。
说明
YAML 转 JSON 会把值归一化:带引号和不带引号的标量都会变成普通的 JSON 字符串或数字, 注释被丢弃。JSON(几乎)是 YAML 的子集,所以对普通数据来说, JSON → YAML → JSON 的往返转换是干净的。如果只是想确认一份 YAML 是否合法, 做一次 YAML → JSON 转换就够了,解析失败会立刻报错。
FAQ
我的数据会被发送到服务器吗?
不会。转换完全在浏览器内通过 js-yaml 库完成,配置文件和请求负载不会离开你的机器。
转换是无损的吗?
对普通数据(对象、数组、字符串、数字、布尔值、null)是无损的。注释、锚点、自定义标签这类 YAML 独有的特性在 JSON 里没有对应表示,转成 JSON 时会丢失。
输出使用什么格式?
YAML 输出使用两空格缩进,不做行宽折行;JSON 输出是两空格缩进的格式化文本。