🔍

首页 › 使用教程 › 开发与效率

YAML 与 JSON 互转教程:配置文件格式转换,顺便检查缩进和语法错误

发布于 · 阅读约 2 分钟 · 用到的工具:YAML JSON 互转

一句话答案

打开 YAML JSON 互转,方向选“YAML → JSON”,粘贴 YAML,结果自动生成格式化的 JSON,语法有误会提示;反向选“JSON → YAML”。版本号、邮编等要保持原样的值请加引号。

本文目录
  1. 操作步骤
  2. 对照:同一份配置的两种写法
  3. 容易踩的坑
  4. 常见问题

YAML 用缩进表示层级,适合人写配置;JSON 用括号和引号,适合程序读写。两者能表达的数据结构基本一致,经常需要互相转换。YAML JSON 互转 在转换的同时校验语法,在浏览器本地完成。

操作步骤

  1. 选择方向:打开 YAML JSON 互转,“方向”选“YAML → JSON”或“JSON → YAML”。
  2. 粘贴内容:把配置文件内容粘贴到输入框。
  3. 查看结果:转换结果实时显示;语法错误会提示出错的位置。
  4. 复制使用:复制结果,保存为 .json 或 .yaml 文件。
一段服务配置 YAML 转成 JSON
一段服务配置 YAML 转成 JSON
🔀 YAML JSON 互转
免费在线使用,文件和数据只在你的浏览器本地处理,无需注册。
打开工具 →

对照:同一份配置的两种写法

server:
  port: 8080
  host: example.local
features:
  - search
  - export
debug: false
version: "1.10"
{
  "server": { "port": 8080, "host": "example.local" },
  "features": ["search", "export"],
  "debug": false,
  "version": "1.10"
}

YAML 的缩进对应 JSON 的嵌套对象,“- ”开头的列表对应 JSON 数组。

容易踩的坑

  • 缩进只能用空格:YAML 不允许用 Tab 缩进,同一层级的缩进必须对齐;
  • 版本号会变成数字:不加引号的 version: 1.10 会被解析为数字(JSON 输出的值是 1.10 而不是字符串),程序按数字读取时就变成 1.1,所以版本号、邮编、手机号等要写成 "1.10"、"010";
  • 冒号后要有空格:key:value 不会被识别为键值对,要写成 key: value;
  • 多文档只转第一个:用 --- 分隔的多个文档,工具目前只转换第一个。

JSON 内容需要美化或校验,见 JSON 格式化。

常见问题

YAML 转 JSON 会丢失注释吗?

会。JSON 不支持注释,YAML 中的 # 注释在转换后不会保留。

为什么转换时提示语法错误?

最常见的原因是缩进不一致、用了 Tab 缩进,或者冒号后面缺少空格。

支持多文档 YAML 吗?

目前只转换第一个文档(第一个 --- 分隔之前或之间的内容)。

配置内容会上传吗?

不会。转换在浏览器本地完成,适合处理含内部地址的配置。