免费转换器

YAML to JSON Converter

Fast and secure YAML to JSON conversion. Perfect for configuration files and data analysis.

关于此工具

YAML 和 JSON 是密切相关的格式 - JSON 从技术上讲是 YAML 1.2 的严格子集 - 并且它们之间的转换通常很简单。 YAML 添加了 JSON 所缺乏的人性化功能:注释、无需转义的多行字符串、锚点和别名引用、更灵活的引用以及类似于自然文档布局的基于缩进的结构。这使得 YAML 成为配置文件(Kubernetes 清单、GitHub Actions 工作流程、Docker Compose)的流行选择,而 JSON 主导 API 负载。

将 YAML 转换为 JSON 通常意味着放弃 YAML 的人性化附加功能,以换取机器更容易解析的格式,这就是 HTTP API 的通用语言。注释被删除(JSON 没有)。锚引用被解析为其引用值。多行字符串折叠为带有嵌入换行符的标准 JSON 字符串。

该转换器使用 js-yaml 解析 YAML,js-yaml 是 JavaScript 中使用最广泛的 YAML 库。输出是使用带有可选缩进的 JSON.stringify 生成的。该转换处理所有标准 YAML 1.2 语法,包括流样式、块样式、标量、序列、映射、锚点、别名和标准标记类型。

为什么将 YAML 转换为 JSON

大多数 API 和许多编程环境都需要 JSON。当与仅接受 JSON 的代码或服务集成时,用 YAML 编写的配置文件需要转换为 JSON。 JSON 的工具也更加丰富:jq、JSON Path、JSON Schema 以及广泛的验证器和转换器生态系统都采用 JSON 输入。

JSON 也很明确,而 YAML 则不然。 YAML 的灵活性带来了解析惊喜——YAML 1.1 中的“no”等字符串解析为布尔值 false,版本字符串解析为浮点数,缩进错误会产生无声的结构更改。转换为 JSON 会将数据冻结为更明确的形式。

使用方法

粘贴 YAML,获取 JSON。

  1. 添加您的 YAML: 将 YAML 文本粘贴到输入区域或拖放 .yml/.yaml 文件。 js-yaml 接受完整的 YAML 1.2 语法。
  2. 转换: js-yaml 将 YAML 解析为 JavaScript 对象,然后 JSON.stringify 使用两个空格缩进对其进行序列化。注释被删除,锚点被解析,特殊的 YAML 类型(时间戳、二进制数据)被转换为 JSON 兼容的表示形式。
  3. 查看结果: 确认 JSON 结构符合您的预期。与源 YAML 进行比较,以发现 YAML 的松散类型产生意外 JSON 值的任何位置。
  4. 下载或复制: 另存为 .json 或复制到剪贴板。输出是任何 JSON 解析器都可以使用的有效 JSON。

常见用例

技术细节

js-yaml 实现 YAML 1.2,并可选支持 YAML 1.1 怪癖(“no”-as-false 问题,没有 0o 前缀的八进制数字)。解析器使用本机类型生成 JavaScript 对象树:数字、字符串、布尔值、null、数组和普通对象。

JSON.stringify 将对象树序列化为 JSON。可选的缩进可产生漂亮的打印输出;如果没有它,结果是紧凑的单行 JSON。特殊值(NaN、无穷大、未定义)不是有效的 JSON;转换器将它们强制为 null(如果存在)。

边缘情况:YAML 时间戳变成 JSON 中的 ISO-8601 字符串。 YAML 二进制数据(base64 编码)变成字符串。由于 JSON 没有引用语法,因此锚点和别名会解析为 JSON 中的重复值。

最佳实践

常见问题

将 YAML 转换为 JSON 会改变内容吗?
尽可能准确地保留内容。但是,某些特定于格式的功能可能没有直接等效项,因此可能会出现细微的格式差异。
为什么要将数据转换为 JSON 格式?
JSON 是 Web API 和 JavaScript 应用程序的标准数据格式。它是人类可读的,受到编程语言的广泛支持,并且具有比 XML 更简单的语法。
转换器是否处理嵌套或复杂的 YAML 结构?
是的。该工具可以正确解析嵌套对象、数组和所有标准 YAML 数据类型,从而在 JSON 输出中保留完整的数据结构。
此转换安全且私密吗?
是的。所有处理都在您的浏览器本地进行。您的数据永远不会离开您的设备 - 没有服务器上传,没有云处理,没有数据收集。
我的 YAML 往返是否干净?
如果您将 JSON 重新发送回 YAML,则结构上是肯定的。评论和锚点结构丢失;原始值被保留。
我的数据是否上传到服务器?
不会。js-yaml 在您的浏览器中运行。
最大尺寸是多少?
最大 50 MB。 js-yaml 立即处理典型的配置文件;非常大的 YAML 可能需要花费大量时间来解析。
它支持多文档 YAML 吗?
YAML 支持一个文件中的多个文档,以 --- 分隔。转换器默认处理第一个文档;对于多文档处理,首先拆分 YAML。