YAML配置文件语法教程

YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,他并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。

YAML文件语法

YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。

它的基本语法规则如下。

大小写敏感

使用缩进表示层级关系

缩进时不允许使用Tab键,只允许使用空格。

缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

# 表示注释,从这个字符一直到行尾,都会被解析器忽略。

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

对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

纯量(scalars):单个的、不可再分的值。字符串、布尔值、整数、浮点数、Null、时间、日期

下面直接以代码的形成来了解YAML文件

# 数组,等价于[ 'Cat', 'Dog', 'Goldfish' ]
- Cat
- Dog
- Goldfish
# 二维数组,等价于[ [ 'Cat', 'Dog', 'Goldfish' ] ]
-
 - Cat
 - Dog
 - Goldfish
# 对象、数组嵌套 { languages: [ 'Ruby', 'Perl','Python' ] }
languages:
 - Ruby
 - Perl
 - Python
# 对象嵌套 { hash: { name: 'Steve', foo: 'bar' } }
hash:
 name: Steve
 foo: bar
hash: { name: Steve, foo: bar }    # { hash: { name: 'Steve', foo: 'bar' } }
# 字符串
str: name1     # { str: 'name1' }   字符串默认不使用引号表示。
str: 'key: value'   # { str: 'key: value' }  如果字符串之中包含空格或特殊字符,需要放在引号之中。
str: '内容\n字符串' # { str: '内容\\n字符串'}   单引号会对转义字符
str: "内容\n字符串"  # { str: '内容\n字符串' }  双引号不会对转义字符
str: 'labor''s day'  # { str: 'labor\'s day' }   单引号之中如果还有单引号,必须连续使用两个单引号转义。
str: 这是一段
  多行
  字符串           # { str: '这是一段 多行 字符串' }    字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。
# 多行字符串可以使用|保留换行符  等价于{ str: 'Foo\nBar\n'}
#+表示保留缩进块末尾的换行,-表示删除字符串末尾的换行。 等价于{ str: 'Foo\nBar'}
str: |-
  Foo
  Bar
# 可以使用>折叠换行  下面的等价于{str: 'Foo Bar\n' }
str: >
  Foo
  Bar
#字符串之中可以插入 HTML 标记。 { message: '\n<p style="color: red">\n  段落\n</p>\n' }
message: |
  <p style="color: red">
    段落
  </p>
# 其他类型变量
number: 12.30       # { number: 12.30 }
isSet: true   #{ isSet: true }
parent: ~    # { parent: null }
date: 1976-07-31    #{ date: new Date('1976-07-31') }
e: !!str 123   # { e: '123'}   YAML 允许使用两个感叹号,强制转换数据类型。
f: !!str true  # { f: 'true'}  YAML 允许使用两个感叹号,强制转换数据类型。


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/665.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。