在线YAML/JSON互转
YAML与JSON格式之间的双向转换工具
YAML/JSON互转详细教程
YAML(YAML Ain't Markup Language)和JSON(JavaScript Object Notation)都是广泛使用的数据序列化格式。YAML以简洁、可读性强的缩进结构著称,常用于配置文件(如Docker Compose、Kubernetes、Ansible、GitHub Actions等)。JSON则以结构严谨、解析效率高而闻名,是Web API数据交换的事实标准格式。在实际开发中,经常需要在两种格式之间进行转换,例如将YAML配置文件转换为JSON格式以便在JavaScript中直接使用。
YAML与JSON的主要区别
- 语法风格:YAML使用缩进表示层级关系,不需要括号或引号;JSON使用花括号{}和方括号[]表示结构,字符串必须用双引号包裹
- 可读性:YAML更接近自然语言,对人工阅读更友好;JSON更适合机器解析
- 注释支持:YAML原生支持#注释,这是配置文件场景的关键需求;JSON不支持注释
- 数据类型:YAML原生支持更多数据类型(日期、时间戳、锚点等);JSON仅支持字符串、数字、布尔值、null、数组和对象
- 解析效率:JSON解析速度通常快于YAML,因为JSON语法更严格且简单
常见应用场景
CI/CD配置文件转换:GitLab CI、GitHub Actions、Jenkins等CI/CD工具使用YAML配置文件,有时需要将配置导出为JSON用于自动化处理。Kubernetes资源配置:K8s使用YAML定义Pod、Service、Deployment等资源,但API请求通常使用JSON格式。前后端数据交换:后端配置用YAML管理更清晰,但需要转换为JSON输出到前端。OpenAPI/Swagger文档:API规范可以编写为YAML(更易读),但最终需要作为JSON发布。
YAML语法要点
YAML使用空格缩进表示层级(不支持Tab缩进),通常使用2个空格。键值对用冒号加空格表示。列表项用短横线加空格表示。字符串一般情况下不需要引号,但如果包含特殊字符(如: # { } [ ]等)则需要用引号包裹。YAML支持多行字符串的多种表示方式(|保留换行、>折叠换行)。了解这些语法要点可以帮助你编写正确的YAML文件,避免常见的缩进错误。
YAML与JSON转换说明
YAML和JSON都是常用的数据交换格式,本工具支持在两者之间进行双向转换。
- YAML转JSON:保留数据结构,转换为JSON字符串
- JSON转YAML:保留数据结构,转换为YAML格式
- 自动格式化输出结果
- 支持嵌套对象和数组结构