ZeroTool Workbench
YAML JSON 转换器
即时进行 YAML 与 JSON 格式互转。支持嵌套对象、数组、多行字符串。免费在线工具,纯浏览器端运行。
使用方法
- YAML → JSON:将 YAML 数据粘贴到左侧面板,点击 YAML → JSON 按钮。
- JSON → YAML:将 JSON 数据粘贴到右侧面板,点击 JSON → YAML 按钮。
- 可使用 Ctrl+Enter(Mac 上为 Cmd+Enter)快捷键直接转换当前面板的内容。
- 点击面板上的 Copy 按钮,将结果复制到剪贴板。
转换示例
简单对象
输入 YAML:
name: Alice
age: 30
active: true
输出 JSON 包含 name、age 和 active 字段。
嵌套结构与数组
输入 YAML:
server:
host: localhost
port: 8080
features:
- auth
- logging
- cache
输出 JSON 包含嵌套的 server 对象,含 features 数组。
往返转换
将 JSON 输出粘贴回右侧面板,点击 JSON → YAML 即可往返转换数据。注意,YAML 注释和格式偏好在往返转换中不会保留。
YAML 与 JSON 对比
YAML(YAML Ain’t Markup Language)是一种人类友好的数据序列化格式,广泛用于配置文件(Docker Compose、Kubernetes、Ansible、GitHub Actions)。 JSON(JavaScript Object Notation)是 API 和 Web 服务中最常用的数据交换格式。 两者可以表示相同的数据结构——本工具在两者之间转换,注释、锚点和部分标量值会在转换中改变,见下文「类型会变的值」。
类型会变的值
本工具使用 js-yaml 4.1,遵循 YAML 1.2 core schema,并支持时间戳。下列输入的转换结果如下:
| YAML | JSON | 说明 |
|---|---|---|
country: NO | "NO" | 字符串。PyYAML 等 YAML 1.1 解析器会读成 false |
enabled: yes | "yes" | 同上;布尔值请写 true |
version: 1.10 | 1.1 | 按数字解析;版本号请加引号 |
mode: 0755 | 755 | YAML 1.2 里前导 0 不表示八进制;请写 0o755 |
zip: 01234 | 1234 | 前导 0 丢失;这类编码请加引号 |
date: 2026-09-29 | "2026-09-29T00:00:00.000Z" | 日期变成完整的 UTC 时间戳 |
empty: | null | 没有值的键是 null |
限制
- 一次只转换一个文档。 含
---分隔的输入会报错expected a single document in the stream, but found more。 - 重复的键会报错(
duplicated mapping key),不会静默覆盖。 - 注释和锚点不保留。 锚点和
<<合并键会展开成普通的副本。 - JSON → YAML 时会给有歧义的字符串加引号,例如
'1.10'、'yes'、'NO',再读回来仍是字符串。
FAQ
支持哪些 YAML 特性?
支持所有标准 YAML 1.2 特性,包括嵌套对象、数组、多行字符串(字面量和折叠式)、锚点、别名以及所有标量类型(字符串、数字、布尔值、null、日期)。
可以转换多文档 YAML 吗?
本工具转换单个 YAML 文档。如果输入包含由 --- 分隔的多个文档,仅转换第一个文档。
YAML 数据类型如何映射到 JSON?
YAML 字符串映射为 JSON 字符串,数字保持不变,布尔值映射为 true/false,null 映射为 null,日期映射为 ISO 字符串,序列/映射映射为数组/对象。
数据会发送到服务器吗?
不会。所有转换完全在浏览器中通过 JavaScript 运行,数据不会离开您的设备。