YAML ↔ JSON 互转 — 类型规则、多文档、本地处理

在线 YAML 转 JSON、JSON 转 YAML,双向同页。步骤:选方向、粘贴配置、可勾选安全类型,再复制或下载。多文档用 --- 分隔时会变成 JSON 数组。示例:把一段服务映射转成缩进 JSON 给接口客户端——粘贴留在本机,不上传正文。


      

怎么用

先选 YAML → JSON 或反过来。本页用 js-yaml 在当前标签页转换。用 --- 隔开的多文档会进 loadAll:一篇变成单个 JSON 值,两篇及以上变成 JSON 数组。YAML 语法错时,解析器若带 mark 会给出行号列号。

你该预期的规则

转换时可以预期这些:未加引号的值如何判定类型、多文档 YAML 如何对应到 JSON,以及往返转换可能丢失注释或格式。

  • 类型:默认 schema 下,裸写的 yes/no/on/off 以及部分像日期的标量可能变成布尔或其他类型。勾选安全类型后,未加引号的标量一般保持字符串(除非写了显式类型)。
  • 多文档:走 loadAll——1 篇 → 对应那个 JSON 值;2 篇及以上 → JSON 数组。不会默默丢掉第一篇之后的内容。
  • 往返会丢东西:注释进不了 JSON;锚点/别名会展开成重复值;dump 回 YAML 后键顺序和写法也可能变。
  • 隐私:粘贴不会上传。若从 CDN 拉取 js-yaml,那只是下载库代码,不会把你的配置正文送出去。

示例

YAML `名称: 演示` 加列表 `列表: [a, b]` → JSON `{"名称":"演示","列表":["a","b"]}`。JSON `{"标题":"你好","数量":2}` 可 dump 成缩进 YAML。边界:裸写 `flag: yes` 在默认 schema 下会变成布尔 true;勾选安全类型则保留字符串 "yes"。

适合什么场景

  • 运维:把用 --- 分隔的 Kubernetes 多资源 YAML 转成 JSON 数组,方便脚本消费。
  • 开发:把接口返回的 JSON 先铺成可读 YAML,再手工改配置。
  • 数据 / AI 流水线:人工改的 YAML 参数,接到只吃 JSON 的工具链。

常见问题

粘贴会离开浏览器吗?

转换在当前标签页完成。CDN 最多只用来下载 js-yaml 代码,不会把你的 YAML/JSON 正文当上传发出去。

多文档 YAML(---)怎么处理?

用 --- 分隔的文档走 loadAll。只有一篇时输出单个 JSON 值;两篇及以上变成 JSON 数组,不会只留第一篇。

裸写的 yes 或 no 会变成布尔吗?

默认 js-yaml schema 下经常会——未加引号的 yes/no/on/off 可能变成布尔。勾选「安全类型」后,这些标量一般保持字符串(除非写了显式类型)。

来回转换会丢什么?

注释进不了 JSON;锚点会展开成重复值。把 JSON dump 回 YAML 也还原不了原来的注释和锚点名。

报错行号从哪来?

非法 YAML 时,解析器若提供 mark,会带上行号和列号。非法 JSON 由 JSON.parse 报错,没有 YAML 那种 mark。

参考来源