⌘K 切换工具
FORMAT & CONVERT

JSON ↔ YAML 转换工具

双向转换JSON和YAML格式数据。

local
json-yaml
§01 关于此工具

概述

JSON 和 YAML 表达的是同一套数据模型,但各个生态的选择并不统一:Kubernetes、 CI 流水线和 Ansible 用 YAML,而 API 和 JavaScript 工具链用 JSON。于是同一份配置 常常要在两种写法之间来回搬运。这个转换器由运行在浏览器本地的 js-yaml 驱动, 在两个方向上即时互转,不需要装任何命令行工具。

两边的取舍也很实际:YAML 靠缩进表达层级,写起来省字符,还允许写注释; JSON 的结构更死板,但没有歧义,几乎任何语言的标准库都能直接解析。

使用方法

  1. JSON → YAMLYAML → JSON 标签页选择转换方向。
  2. 把输入粘贴到 JSON(或 YAML)输入框,输出框会随着你的输入同步更新。
  3. 如果输入无法解析,错误信息会显示在两个输入框之间;没有问题就直接复制结果。

示例

  • {"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 输出是两空格缩进的格式化文本。