Yaml 速成查询表

简介: 若是接触过编程数据结构的,对这个上手贼快.写过json这些的...主要关注下缩进这些,理解下概念即可!这里只列出非常高频且通用性高的使用姿势,个别骚姿势自行去提案了解!


前言


若是接触过编程数据结构的,对这个上手贼快.


写过json这些的...主要关注下缩进这些,理解下概念即可!


这里只列出非常高频且通用性高的使用姿势,个别骚姿势自行去提案了解!

写法及注释


值得一提的是:


  • 文件首行%YAML version ,可以指定使用yaml的版本
  • 键值对的冒号必须跟随空格才是标准的写法,不然会被当初一个字符串!
  • 大小写敏感
  • 声明的key必须为字符串
  • 使用空格缩进(不允许tab)
  • #行开头到行尾为注释区域
  • 值允许的类型有
  • str : 字符串
  • int | float: 整形及浮点型
  • list(array) : 可以理解为数组
  • map(dict) : 不同语言叫法不一样, 字典算是比较通用的解释
  • null(~) : 空值
  • date : iso-8601标准的日期格式


%YAML 1.2
---
# 这是一条注释,跟bash一样,#号开头
# 最常见的字符串声明,默认会自带单引号(会转义)
text: 我是测试文本
text1: '我是测试文本1'
text2: '我会被转义\n,因为单引号会对需要转义的进行转义'
text3: "双引号则忽略需要转义的,\n\t"
text4: "这是多行文本
 换行的需要空格缩进,
 你可以试试"
# |后面可以追加+(保留换行符,默认),-移除每行字符串末尾换行符
text5: |
 这种多行文本可读性比较强
 类似数组,整齐排列
 # 也支持+-,同样是控制换行符
text6: >
 这是折叠换行的姿势
 会在最后一行末尾保留换行符
 试试不就知道了
# 空值,日期声明
isEmpty: ~
isEmpty2: null
date: 2020-07-15
#一维数组的写法(也能理解为列表)
# 写法一
language: ['c','c++']
# 写法二
hight_language:
- 'python'
- 'java'
# 二维数组
# 写法一
testNestedArr1:
- [1,2,3]
- [4,5,6]
# 写法二, 依托缩进
testNestedArr2:
-
 - Cat
 - Dog
 - Goldfish
# map的写法,js中也可以理解为对象,也能理解为一些语言的字典
# 写法一
asiaHuman: {eye: 'black',skin: 'yellow'}
# 写法二
europeHuman:
- eye: 'blue'
- skin: 'white'
# 数组对象写法
arrayMap: 
- key: 1
- {test: 'fsadfas'}
 # 声明锚点,这个可以用来给其他复用,有点类似继承
 # 采用&来声明锚点
human: &base
 foot: true
 hand: true
 head: true
 body: true
 # 锚点复用,用<<来声明导入(合并到当前),*+锚点来确定引用范围
asiaMan: &asiaM
 skin: 'yellow'
 <<: *base
otherDesc:
 - &inline {strong: True}
skill:
 <<: *asiaM
 <<: *inline
 it: very good
# 类型强制转换
# !!int # 整数类型 
# !!float # 浮点类型 
# !!bool # 布尔类型 
# !!str # 字符串类型 
# !!binary # 也是字符串类型 
# !!timestamp # 日期时间类型 
# !!null # 空值 
# !!set # 集合 
# !!omap,!!pairs # 键值列表或对象列表
# !!seq # 序列,也是列表 
# !!map # 键值表
needStr: !!str '0.01'
needBoolean: !!bool 'false'
needBoolean2: !!bool 'True' 
needSeq: !!seq [1,2,2,3]
needFloat: !!float '666.6'
# 关联数组键,我在折腾k8s的过程看过这个写法
# 特意去了解了下,他可以组合多个key为更复杂的key
? - key1
  - key2
: - value1
  - {value2: '3'}
...
---
# 在线编译器是数据流编译,不能多个文档在线,这部分不能放进去(可以独立测试)
# 切割yaml文档,该姿势在k8s的配置文件比较常见
# 以---(三横线)开头
# 以...结束为一个yaml文档
testNestedArr2:
- 
 - Cat
 - Dog
 - Goldfish
...

编译效果


{ text: '我是测试文本',
  text1: '我是测试文本1',
  text2: '我会被转义\\n,因为单引号会对需要转义的进行转义',
  text3: '双引号则忽略需要转义的,\n\t',
  text4: '这是多行文本 换行的需要空格缩进, 你可以试试',
  text5: '这种多行文本可读性比较强\n类似数组,整齐排列\n\n# 也支持+-,同样是控制换行符\n',
  text6: '这是折叠换行的姿势 会在最后一行末尾保留换行符 试试不就知道了\n',
  isEmpty: null,
  isEmpty2: null,
  date: Wed Jul 15 2020 08:00:00 GMT+0800 (中国标准时间),
  language: [ 'c', 'c++' ],
  hight_language: [ 'python', 'java' ],
  testNestedArr1: [ [ 1, 2, 3 ], [ 4, 5, 6 ] ],
  testNestedArr2: [ [ 'Cat', 'Dog', 'Goldfish' ] ],
  asiaHuman: { eye: 'black', skin: 'yellow' },
  europeHuman: [ { eye: 'blue' }, { skin: 'white' } ],
  arrayMap: [ { key: 1 }, { test: 'fsadfas' } ],
  human: { foot: true, hand: true, head: true, body: true },
  asiaMan: { skin: 'yellow', foot: true, hand: true, head: true, body: true },
  otherDesc: [ { strong: true } ],
  skill: 
   { skin: 'yellow',
     foot: true,
     hand: true,
     head: true,
     body: true,
     strong: true,
     it: 'very good' },
  needStr: '0.01',
  needBoolean: false,
  needBoolean2: true,
  needSeq: [ 1, 2, 2, 3 ],
  needFloat: 666.6,
  'key1,key2': [ 'value1', { value2: '3' } ] }

在线测试地址


基于JS-YARML : nodeca.github.io/js-yaml/


官方提案


yaml一直在更新,包括更复杂的姿势


具体骚的程度看不同语言实现的支持程度!


有兴趣的点击下面的传送门: yaml.org/

目录
相关文章
|
8月前
|
Oracle 关系型数据库 MySQL
Flink CDC产品常见问题之从EARLIEST_OFFSET启动就报错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
4月前
|
JSON Kubernetes API
深入理解Kubernetes配置:编写高效的YAML文件
深入理解Kubernetes配置:编写高效的YAML文件
|
7月前
|
存储 运维 Serverless
函数计算产品使用问题之在YAML文件中配置了环境变量,但在PHP代码中无法读取到这些环境变量,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
Kubernetes 应用服务中间件 nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
|
3月前
|
Kubernetes Docker Perl
k8s常见故障--yaml文件检查没有问题 pod起不来(一直处于创建中)
k8s常见故障--yaml文件检查没有问题 pod起不来(一直处于创建中)
132 1
|
3月前
ingress相关yaml文件报错且相关资源一切正常解决方法
ingress相关yaml文件报错且相关资源一切正常解决方法
ingress相关yaml文件报错且相关资源一切正常解决方法
|
6月前
|
运维 Kubernetes Serverless
Serverless 应用引擎使用问题之s.yaml文件中如何使用外部环境变量
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
存储 缓存 运维
函数计算产品使用问题之如何将外部环境变量放到s.yaml文件中使用
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
机器学习/深度学习 计算机视觉 Python
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
181 0
|
5月前
|
JSON Kubernetes 数据格式
k8s集群yaml文件方式迁移
k8s集群yaml文件方式迁移