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 里换行是有语义的, 折了行读回来就变了。
所以这里关掉了自动折行,长字符串会完整地占一行。