Loading...
Loading...
免费的在线 YAML JSON 互转工具——在 YAML 和 JSON 之间转换 Kubernetes 清单、Docker Compose 和 CI/CD 配置。
YAML(YAML 不是标记语言)和 JSON(JavaScript 对象表示法)都是现代软件开发中广泛使用的数据序列化格式。JSON 是 JavaScript 语法的子集——严格、简洁、普遍支持。YAML 更具表现力,支持注释、锚点、多行字符串和单文件多文档。
JSON 是 Web API 和网络数据交换的标准。每种编程语言都有内置或库支持来解析和生成 JSON。其严格语法消除了歧义,但对人类手动编写而言可能较为繁琐,尤其是缺乏适当工具支持时处理深度嵌套结构。
YAML 是 Docker Compose、Kubernetes、GitHub Actions、Ansible 和 CI/CD 流水线等工具中配置文件的首选格式。其基于缩进的语法和对注释的支持使人类编写的配置更易读。然而,YAML 的复杂性(隐式类型、多文档支持)可能导致细微的错误。
在这两种格式之间转换是连接不同系统时的常见需求。你可能需要将 Kubernetes YAML 清单转换为 JSON 以进行程序化处理,或将 JSON API 响应转换为 YAML 以包含在文档或配置中。此工具双向处理转换,并保持适当的格式化。
需要记住的关键差异:YAML 支持注释(#),JSON 不支持。YAML 使用缩进表示结构,JSON 使用花括号。YAML 有多种数据类型(日期、时间戳),JSON 只有字符串、数字、布尔值、null、对象和数组。YAML 可以定义可复用锚点(&)和别名(*)以避免重复。
标准数据不会。但 YAML 特有的功能如注释、锚点、多文档文件和自定义类型在转换为 JSON 时会丢失。JSON 转 YAML 是无损的,因为 JSON 是 YAML 能力的一个子集。
常见 YAML 问题:不一致的缩进(必须使用一致的空格,而非制表符)、字符串和数字的混淆(YAML 1.1 中 yes 和 true 是布尔值)、以及使用制表符(YAML 禁止使用制表符缩进)。
YAML 用于人类编写的配置文件(Docker、Kubernetes、CI/CD)。JSON 用于机器间数据交换(API、数据存储、WebSocket 消息)。YAML 对人类更可读,JSON 对机器更可靠。