JSON 转 YAML / YAML 转 JSON 在线转换

免费在线 JSON 与 YAML 双向转换,纯前端本地处理,数据不上传服务器。支持锚点、别名、合并键、多文档,正确处理块标量与各种字符串转义,不会把日期字符串偷偷改成时间对象。

边打边转换,不用按按钮。Ctrl / Cmd + Enter 可立即转换。
日期字符串不会被偷偷改成时间对象

很多 YAML 工具会把 date: 2024-03-01 解析成日期对象, 于是转成 JSON 就变成了 "2024-03-01T00:00:00.000Z"—— 你的数据被悄悄改了。

这个工具保持它是字符串。原则和站内其他转换工具一致: 不猜语义,猜错了比不猜更糟。 需要日期类型的话,在代码里显式转换更安全。

YAML 转 JSON 会丢掉注释

这是格式本身决定的,不是工具的问题:JSON 没有注释这个概念。 YAML 里的 # 说明 在转换过程中必然消失。

所以别把注释里写了关键信息的 YAML 转成 JSON 后就丢掉原文件。

支持哪些 YAML 特性
  • 锚点与别名:&base / *base
  • 合并键:<<: *base 会正确展开
  • 多文档:--- 分隔的多个文档会合成一个 JSON 数组
  • 块标量:| 保留换行、> 折行
  • 流式样式:a: 1, b: [1, 2]}
  • 显式标签:!!str 等

用的是完整的 YAML 1.2 解析器,不是"简化版"——不会出现 「大部分能转,某些输入悄悄转错」的情况。

关于第三方库(这个工具唯一一个)

这个工具用了 js-yaml,是站内唯一一个 用了第三方运行时依赖的工具。其余工具全部自研。

原因很直接:YAML 解析太复杂了——锚点、合并键、多文档、 块标量、隐式类型……手写一个正确的要上千行,而且很容易写出 「某些输入静默解析错」的实现。而 YAML 通常用来配 K8s / CI, 解析错了用户不知道,直接把错的东西部署上去。 这种风险不值得省一个库。

  • MIT 许可,可商用
  • 纯 JavaScript,在浏览器里跑——数据一样不上传
  • 压缩后约 13 KB,只在这个页面加载,其他工具完全不受影响

可以按 F12 → Network 自己验证:转换过程中没有任何请求把内容发出去。

JSON 转 YAML 时长字符串不会折行

默认设置下 YAML 序列化器会在 80 列处折行,但在 YAML 里换行是有语义的, 折了行读回来就变了。

所以这里关掉了自动折行,长字符串会完整地占一行。