JSON ⇄ YAML 互转
JSON ⇄ YAML
双向转换并保住键的顺序,YAML 一侧可选块状或流式写法。
在浏览器里把 YAML、JSON 和 TOML 朝任意方向互转。解析器是为本站专门写的,不是从 npm 拉来的,所以页面能明确列出它拒绝什么——锚点、标签、多文档流——而不是悄悄读错。
输入
拖入 .yaml、.json 或 .toml 文件
在这个标签页里读取,不上传。
JSON 输出
是在这里写的,不是从 npm 装的,所以支持的子集是挑出来的而不是继承来的。凡是这张清单上的东西,都会点名拒绝,而不是读错。
怎么用
粘贴配置
格式从文本里检测,选择器下方的标签会说它判定的是哪一种。猜错了就手动覆盖——JSON 文件同时也是合法的 YAML,所以一份 `{ }` 文档两边都说得通。
选目标格式
Kubernetes 清单或 CI 文件用 YAML,任何要被程序解析的东西用 JSON,Rust 或 Python 的项目文件用 TOML。
读警告,不要只看输出
一次成功的转换仍然可能改变了含义——进 TOML 的路上丢掉的 `null`,在 YAML 1.2 下被读成字符串的 `yes`。这些会出现在输出下方的说明里,而不是被藏起来。
被拒绝时打开范围列表
底部折叠的部分列出了这些解析器不处理的每一种结构,以及原因。一次拒绝会指向那个列表,而不是抛出一个要你自己解读的解析错误。
常见问题
为什么我的锚点和别名被拒绝了?
因为正确展开 `*base` 意味着实现 YAML 的合并语义,而那里出一点细微的错,就会产生一份看起来对、部署出去却是另一回事的文件。粘贴之前手工展开是可靠的;靠猜不可靠。`<<: *base` 也是同样的原因。
为什么 `yes` 变成了字符串?
因为 YAML 1.2 的核心 schema 说它就是字符串——只有 `true` 和 `false` 是布尔值。YAML 1.1 的解析器,包括一些仍在生产环境里的,把它读成布尔值。这个差异出现时会在警告里指出,因为它正是会改变一次部署的那类东西。
`null` 转到 TOML 会怎样?
会被丢掉,并有一条警告说明。TOML 根本没有 null 值,所以选择只有省略这个键或编一个占位符,而编一个占位符会把字面的 `"null"` 字符串放进别人的配置里。
注释会保留吗?
不会。转换要经过一个数据模型,而注释不是数据——JSON 根本没有放注释的地方。如果你需要注释,本站的 YAML 和 TOML 格式化工具是原地重排缩进的,会保留它们。
可以从这些接进来
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
YAML 格式化与校验
YAML Formatter & Validator
统一 YAML 缩进并校验语法,把会让解析器崩掉的制表符和锚点错误标出来。
JSON ⇄ TOML 互转
JSON ⇄ TOML
在 JSON 和 TOML 之间转换,把嵌套对象映射成表头。
TOML 格式化与校验
TOML Formatter & Validator
格式化并校验 TOML,统一表的排列顺序和内联表的写法。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
JSON Schema 校验
JSON Schema Validator
用 JSON Schema 校验文档,每一处失败都带上它在实例里的路径。
JSON ⇄ TOML 互转
JSON ⇄ TOML
在 JSON 和 TOML 之间转换,把嵌套对象映射成表头。
YAML 格式化与校验
YAML Formatter & Validator
统一 YAML 缩进并校验语法,把会让解析器崩掉的制表符和锚点错误标出来。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。