YAML转JSON转换器

使用此在线实时转换器,轻松将YAML转换为JSON。

YAML转JSON转换器是什么

把 YAML 转成 JSON,输出固定 3 空格缩进。默认解析 merge key(<<: *锚点)后再输出,另有一个 nestify 开关可以把 a.b.c 这种点号键展开成真正的嵌套对象。结果可复制或下载成 output.json。

所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。

怎么用YAML转JSON转换器

  1. 需要把点号键展开成嵌套对象时,勾选上方的 nestify 开关
  2. 在左侧输入框粘贴 YAML,示例形如 foo: bar / list: - item
  3. 右侧输出框实时显示 JSON(3 空格缩进)
  4. YAML 不合法时输入框提示「提供的 YAML 无效」,输出为空
  5. 点复制按钮取走,或下载成 output.json

示例

输入

name: 站点
list:
  - a
  - b

输出

{
   "name": "站点",
   "list": [
      "a",
      "b"
   ]
}

不含整数时可正常输出;固定 3 空格缩进

常见问题

为什么输出框是空的?

两种可能:YAML 本身不合法(缩进错、Tab 混用、冒号后缺空格),或者里面含有整数——整数被解析成 BigInt 后 JSON 序列化会失败。先检查缩进,再试着给数字加引号。

缩进能改成 2 或 4 空格吗?

不能,输出固定 3 空格,页面没有提供选项。需要其它缩进可以把结果拿到 JSON 格式化工具里再处理。

注释和锚点会保留吗?

不会。注释在解析阶段就丢弃了;锚点会被解析成实际值(merge key 也会被展开),不会以别名形式出现在 JSON 里。

配置内容会上传吗?

不会。yaml 库在浏览器里解析,JSON.stringify 也在本地执行,文本不发送到任何服务器。

小提示

  • merge key 默认生效:<<: *default 引用的锚点内容会被合并进来再输出,不用手工展开
  • nestify 打开后 'a.b.c': 1 会变成 {"a":{"b":{"c":1}}};不开就原样保留带点号的键名
  • 解析时整数按 BigInt 处理,而 JSON 序列化不支持 BigInt,含整数字段的 YAML 可能整个输出为空;把数字加上引号再转即可绕过

同类YAML工具