.yml文件语法

YAML简介


YAML 试图用一种比 XML 更敏捷的方式,来完成 XML 所完成的任务。
YAML Ain't Markup Language
和GNU一样,YAML是一个递归着说“不”的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。
YAML不是XML。

为什么不是XML呢?因为:

  • YAML的可读性好。
  • YAML和脚本语言的交互性好。
  • YAML使用实现语言的数据类型。
  • YAML有一个一致的信息模型。
  • YAML易于实现。

上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点:

  • YAML可以基于流来处理;
  • YAML表达能力强,扩展性好。

总之,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。

更多的内容及规范参见http://www.yaml.org。

语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • # 表示注释,从这个字符一直到行尾,都会被解析器忽略。

yaml也有用来描述好几行相同结构数据的缩写语法,数组用“[]”包括起来,hash用“{}”来包括

    bat:  
     website:  
      baidu: http://www.baidu.com  
      qq: http://www.qq.com  
      ali:  
       - http://www.taobao.com  
       - http://www.tmall.com  
     ceo:  
      yanhongli: 李彦宏  
      huatengma: 麻花疼  
      yunma: 马云  

等价于

bat:  
  website:{baidu: http://www.baidu.com,qq: http://www.qq.com,ali: [http://www.taobao.com, http://www.tmall.com]}
  ceo:{ yanhongli:李彦宏,huatengma:麻花疼,yunma:马云}

YAML 支持的数据结构有三种。

  1. 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
    animal: pets
  2. 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- Cat
- Dog
- Goldfish

复合结构:

languages:
 - Ruby
 - Perl
 - Python 
 websites:
 YAML: yaml.org 
 Ruby: ruby-lang.org 
 Python: python.org 
 Perl: use.perl.org
  1. 纯量(scalars):单个的、不可再分的值

字符串 name: changhf
布尔值 result: true
整数
浮点数 number: 12.30
Null
时间
日期 date: 1976-07-31

null用~表示。

参考资料

https://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/
http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt

你可能感兴趣的:(.yml文件语法)