JSON 转 YAML

把 JSON 转成适合手改的 YAML 1.2。true 和 false 仍是布尔值,单词 yes 不会被当成真。

给要手改的配置,而不是再给程序一份 JSON

Docker Compose、GitHub Actions 这类文件用 YAML,是因为缩进好读、也好做对比。这里输出 YAML 1.2:true 和 false 是布尔值,单词 yes 仍是文字。这样不会出现“一个叫 yes 的开关被当成真”的老问题。

怎么用

  1. 粘贴一个 JSON 值:对象、数组或单个值都可以。
  2. 缩进选 2 或 4 个空格。结果用空格,不用制表符。空格和制表符混用是 YAML 最常见的故障。
  3. 只有想让差异对比稳定时才排序。键的顺序本身有意义时不要排。
  4. 要变回 JSON 用 YAML 转 JSON。你后来手写的注释,在那一次转换里留不住。

常见问题

为什么有的字符串加了引号?

看起来像布尔、数字、日期,或里面有 : #、前导空格的值会被加上引号,避免解析器改含义。

原来的注释能留着吗?

不能。JSON 里没有注释。先转出 YAML,再自己加上注释。