YAML to JSON Converter
Fast and secure YAML to JSON conversion. Perfect for configuration files and data analysis.
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 语法,包括流样式、块样式、标量、序列、映射、锚点、别名和标准标记类型。
大多数 API 和许多编程环境都需要 JSON。当与仅接受 JSON 的代码或服务集成时,用 YAML 编写的配置文件需要转换为 JSON。 JSON 的工具也更加丰富:jq、JSON Path、JSON Schema 以及广泛的验证器和转换器生态系统都采用 JSON 输入。
JSON 也很明确,而 YAML 则不然。 YAML 的灵活性带来了解析惊喜——YAML 1.1 中的“no”等字符串解析为布尔值 false,版本字符串解析为浮点数,缩进错误会产生无声的结构更改。转换为 JSON 会将数据冻结为更明确的形式。
粘贴 YAML,获取 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 中的重复值。