跳到正文
马克工具箱

JSON 转 YAML

把 JSON 转换成简洁的 YAML,用于 Kubernetes 清单、Docker Compose、CI 流水线和应用配置。保留原有键顺序,只在 YAML 需要时才给字符串加引号,JSON 有误时会提示出错的行号。

在浏览器本地运行,输入的内容和文件都不会上传

JSON → YAML
输出 (YAML)

使用步骤

  1. 在左侧粘贴 JSON,或点击「载入示例」。
  2. 选择 2 或 4 个空格缩进,YAML 会实时生成。
  3. JSON 格式有误时,会提示出错所在的行。
  4. 复制或下载 YAML;点击「反向转换」可以把 YAML 转回 JSON。

参数说明

缩进
Kubernetes、Compose、GitHub Actions 约定使用 2 个空格,也有团队使用 4 个。
引号
只在必要时加引号,比如包含「: 」、以特殊字符开头,或者不加引号会被当成数字、布尔值、null 的字符串(如 "yes"、"on"、"1.0")。
长字符串
不自动折行,网址、证书等长值保持在一行,方便 diff。

示例

JSON:

{"apiVersion":"v1","kind":"Service","metadata":{"name":"web"},"spec":{"ports":[{"port":80,"targetPort":8080}]}}

YAML:

apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  ports:
    - port: 80
      targetPort: 8080

常见问题

YAML 是 JSON 的超集吗?

从 YAML 1.2 开始,几乎所有 JSON 文档本身就是合法的 YAML。转换成块状 YAML 后结构更易读、易改,还能写注释,而 JSON 不支持注释。

为什么输出里有些字符串带了引号?

不加引号 YAML 会改变它们的含义:on、yes、no 在 YAML 1.1 解析器里是布尔值,1e3 是数字,包含「: 」的值会被当成新的键值对。加引号能保证它仍然是字符串。

会保留键的顺序吗?

会,输出中键的顺序与输入的 JSON 完全一致。

数据会上传吗?

不会。解析和转换都在浏览器中完成,包含主机名、令牌、账号密码的配置也不会外泄。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具