# 如何互转 YAML 与 JSON

在本地转换单个文档，使用结果前核对值。YAML 注释在 JSON 中消失，本解析器有意拒绝未支持的 YAML 结构。

[打开YAML 转 JSON](https://abox.tools/zh/yaml-to-json/): 两个方向都有，而且会告诉你各自的代价。这些都不会粘进别人的服务器。

最后更新 2026年10月12日

## 选择方向并添加文本

粘贴文档或选择文件。菜单可选 YAML 转 JSON 或 JSON 转 YAML；导入 `.json`、`.yaml` 或 `.yml` 文件会选择对应方向。复制或下载前请检查结果。

转换在浏览器中运行，不会上传配置。请保留原本：即使数据未变，格式和注释的变化仍可能影响维护人员。

![YAML 输入和 JSON 输出，以及丢弃的注释数量。](https://abox.tools/screens/convert-yaml-and-json/values.webp)

注释被移除，no 仍是字符串，大整数保留全部数字。

## 使用支持的 YAML 子集

解析器处理常用映射、序列和标量值，采用 YAML 1.2 风格的解析规则，但并非完整的 YAML 1.2 实现。锚点、别名、自定义标签和多文档流会停止转换。文件需要这些功能时，请用支持它们的解析器；移除别名而不保留其含义会改变配置。

解析错误提供跳转到错误功能。请修正报告的输入，而不是使用旧输出；编辑后旧输出会不可用。

## 检查注释、字符串和数字

```
enabled: true
country: no
account: 12345678901234567890
```

这里的 `no` 保留为字符串 `"no"`，不会像 YAML 1.1 那样变成 false。转换器保留数字文本，不通过 JavaScript 浮点数对这个长账号取整。但读取结果的应用仍可能有自己的数字范围限制。

JSON 不支持注释，所以 YAML 注释被丢弃，工具会报告读取的注释。引号字符串或块标量里的 `#` 是内容，不是注释。

## 将 JSON 转回 YAML

数据模型会保留，但结果是重新写出的 YAML，不会恢复之前的注释或格式。歧义词会加引号，以兼容仍使用 YAML 1.1 的读取器。请检查接收应用的 YAML 版本和模式，尤其是部署配置。

[YAML 规范](https://yaml.org/spec/1.2.2/)描述完整语言。仅需检查或压缩 JSON 时，请使用 [JSON 格式化工具](https://abox.tools/zh/json-formatter/)。
