一文读懂YAML数据格式(基础篇)

什么是YAML

YAML是一种数据序列化语言,通常用于编写配置文件。根据你问的人,YAML代表另一种标记语言或YAML不是标记语言(一个递归的缩写),它强调YAML是用于数据而不是文档。YAML是一种流行的编程语言,因为它是人类可读的,易于理解。它还可以与其他编程语言结合使用。由于YAML的灵活性和可访问性,YAML被Ansible自动化工具用来创建自动化流程,以Ansible Playbooks的形式。

------Red Hat 官网

简而言之,YAML与XML、JSON类似,他们三者的一个共同的作用----进行数据传输,简化数据表现形式,使传输过来的数据,更适合人类阅读,更易于人们理解。

YAML初体验

下面是在SpringBoot工程中,采用YAML进行相关数据配置的截图:

一文读懂YAML数据格式(基础篇)_第1张图片

如果,用传统的properties文件进行配置的话,那将会是这样:

一文读懂YAML数据格式(基础篇)_第2张图片

显然,采用YAML进行配置的文件,在数据显示方面,层次更清晰,显示更加规范整洁,而传统的properties配置,则阅读起来会感觉有点吃力,

而且随着配置数据的量的不断增大,后者在数据阅读方面会越发让人感觉不舒服,甚至非常痛苦。

上面说了这么多,不言而喻,YAML无疑是配置数据文件的首选数据语言之一,那么问题来了,我们该如何利用YAML语言编写数据配置文件呢?

YAML的基本数据形式

数组:

 fruits:
   - apple
   - banana
   - lemon
   - watermelon

注:

数组中对应的子项,都要以

 - itemValue

的形式,以数值方向顺次写下,注意 - 与 itemValue 之间有个空格

Map:

 classmates:
   class1:
     name1: Dage
     name2: LiHua
     name3: XiaoMing
   class2:
     name1: IU
     name2: JuJingyi

与数组大致相同,只不过是在 - 的地方换成相应 keyValue值,注意 处于同一级的map中的子项key值必须保证唯一性。

同样的,: 与value值之间有个空格。

对象

 singer:
     name: CaiXukun
     nickname: kun
     fans: ikun
     age: 24
     sex: male

写法与JSON类似

基本数据类型的映射

诸如String,int,double,float,long,char等基本数据类型,value表现形式均与JSON中一致:

 string1: Hello YAML
 string2: "Hello YAML"
 string3: 'Hello YAML'
 integer: 666
 double: 8.8
 character: a
 boolean: true

注意:

字符串形式,可以不带“ ”,也可以带“ ”或‘ ’

: 与value值之间同样存在一个空格

其他用法

注释

 #这是一个单行注释
 #很不幸的是,YAML不支持多行注释。。。
 #你只能向我这样,给每行加个 # 以看作多行注释

补充

~ 相当于NULL

 singer:
     name: CaiXukun
     anti-fan: ~
     fan: all

引用

 ikun: &ikun #使用&锚住可能会被引用的数据块
     - name1: ichen
     - name2: itom
     - name3: zhuozhuo
     
 singer:
     name: CaiXukun
     nickname: kun
     <<: *ikun # 注意此种引用方式key值只能为<<
     
 #上述singer转化为:
 singer:
     name: CaiXukun
     nickname: kun
     ikun: 
         - name1: ichen
         - name2: itom
         - name3: zhuozhuo

你可能感兴趣的:(java,开发语言)