一张图学会yaml格式

  • springboot可以使用yaml格式编写配置文件
  • swagger可以通过yaml格式编写接口文档

YAML介绍

json比xml简洁
yaml又比json简洁
我们慢慢使用yaml完成一些配置文件、接口文档的编写

JSON 4种格式

key-》基本属性
key-》对象
key-》基本数组
key-》对象数组
key-》各种嵌套

YAML有以下基本规则:

1、大小写敏感
2、使用缩进表示层级关系
3、禁止使用tab缩进,只能使用空格键
4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。
5、使用#表示注释
6、字符串可以不用引号标注

YAML对应JSON

案列来自swagger官方demo
在这里插入图片描述

<think>好的,用户想了解YAML格式的使用和语法。根据之前的对话历史,用户之前询问了地理数据模式的使用,现在转向YAML,可能是因为在配置地理数据处理工具时需要用到YAML配置文件。 首先,我需要参考用户提供的四个引用内容,这些引用的信息涵盖了YAML的基本语法、特点、与其他格式的对比以及高级功能如锚点和合并。需要将这些信息整合成结构清晰的回答,同时遵循用户要求的格式,比如使用中文、正确使用LaTeX、生成相关问题等。 用户特别提到要参考之前的回答,所以要注意保持一致的格式,比如分点说明、代码示例等。另外,用户可能希望了解YAML在实际应用中的使用场景,比如配置文件如何编写,语法细节如缩进、注释、数据类型等。 需要确认是否漏掉任何关键点,比如YAML的锚点和合并功能,这在引用4中提到,是高级用法,应该包含在回答中。同时要注意比较YAML与XML、JSON的不同,突出其简洁性,这在引用2和3中都有提到。 用户可能对如何在不同编程语言中使用YAML感兴趣,比如Python中的PyYAML库,但引用中提到的支持语言包括C/C++、Ruby、Python等,需要提及常见的库。此外,注释的写法、缩进规则、大小写敏感这些基础语法点必须详细说明。 还要注意YAML文件扩展名是.yml或.yaml,以及多文档支持,这些在引用3中提到,需要涵盖。最后,生成的相关问题应引导用户深入,比如语法细节、与JSON转换、最佳实践等。 需要检查是否所有信息都准确,比如缩进不允许使用Tab,只能空格,是否正确。同时,确保示例代码正确,比如锚点和合并的示例是否符合YAML语法。最后,确保引用标记正确,根据提供的引用[1]-[4],在适当的位置添加引用标识,但用户提供的引用内容中没有明确需要引用的具体外部来源,可能是用户提供的参考信息,所以可能需要调整引用标识的使用方式,比如在提到某些特点时标注对应的引用编号。 总结:结构分为基本概念、语法规则、数据结构、高级功能、使用场景、注意事项,每个部分整合引用中的信息,确保准确性和全面性,同时生成相关问题。</think>### YAML 格式使用与语法详解 YAMLYAML Ain't Markup Language)是一种以数据为中心的序列化格式,广泛用于配置文件和数据交换。以下是其核心语法与使用场景的总结: --- #### 一、基本概念 1. **文件扩展名**:`.yaml` 或 `.yml`(推荐 `.yaml`)[^1][^2] 2. **设计目标**: - 人类可读性高,适合编写配置文件 - 支持跨语言(Python、Java、C# 等)的数据交互[^1] 3. **对比其他格式**: - 比 XML 简洁,比 JSON 支持更多数据类型(如注释、锚点)[^2][^3] --- #### 二、语法规则 1. **基础规范** - 大小写敏感 - 使用缩进(空格)表示层级关系,**禁止使用 Tab 制表符** [^3] - 注释以 `#` 开头,到行尾结束 ```yaml server: port: 8080 # 服务端口配置 host: localhost ``` 2. **数据层次** - 缩进空格数不限,但同级元素必须左对齐 ```yaml database: user: admin password: 123456 tables: # 表名列表 - users - orders ``` --- #### 三、核心数据结构 1. **标量(Scalar)** - 字符串、数字、布尔值、空值 ```yaml name: "北京" # 字符串(双引号可选) population: 2154万 # 字符串包含数字 is_capital: true # 布尔值 coordinate: null # 空值 ``` 2. **序列(Sequence)** - 列表(数组),使用 `-` 标识 ```yaml cities: - 北京 - 上海 - 广州 ``` 3. **映射(Mapping)** - 键值对(字典/对象) ```yaml location: longitude: 116.4074 latitude: 39.9042 ``` 4. **混合结构** ```yaml user: name: Alice roles: - admin - developer metadata: signup_date: 2023-10-01 active: true ``` --- #### 四、高级功能 1. **多文档支持** - 用 `---` 分隔多个文档,`...` 结束文档(可选)[^3] ```yaml --- config1: key: value1 ... --- config2: key: value2 ``` 2. **锚点与合并(& 和 *)** - 复用数据块,类似编程中的继承[^4] ```yaml defaults: &db_defaults host: localhost user: root port: 3306 database1: <<: *db_defaults name: db1 database2: <<: *db_defaults port: 3307 # 覆盖默认值 ``` --- #### 五、典型使用场景 1. **配置文件** - Docker Compose、Kubernetes、Spring Boot 等 ```yaml # Docker Compose 示例 services: web: image: nginx:latest ports: - "80:80" ``` 2. **数据序列化** - 替代 JSON/XML 传输结构化数据 ```yaml response: status: 200 data: - id: 1 name: "item1" - id: 2 name: "item2" ``` --- #### 六、注意事项 1. **缩进错误** - 错误的空格数会导致解析失败 2. **特殊字符转义** - 含冒号、空格的值需用引号包裹:`message: "错误: 参数无效"` 3. **编码规范** - 推荐使用 UTF-8 编码[^3] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值