重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一、YAML简介
创新互联主营积石山保安族东乡族网站建设的网络公司,主营网站建设方案,手机APP定制开发,积石山保安族东乡族h5小程序设计搭建,积石山保安族东乡族网站营销推广欢迎积石山保安族东乡族等地区企业咨询
YAML是一种人性化、跨语言、基于Unicode的数据序列化语言,YAML是“ YAML Ain’t a Markup Language ” 的递归缩写,YAML不是一种标记语言,读音“ 雅梅尔”。
二、YAML的优点(特性)
YAML的数据结构清晰,易于阅读。
YAML是跨语言的,它的数据在编程语言之间可移植。
YAML符合敏捷语言的数据结构。
YAML支持一次性操作。
YAML表现力强,扩展性好。
YAML易于实现。
三、YAML与其他语言的关系
与JSON的关系
共同点:
JSON和YAML都是易于阅读的数据格式。
不同点:
JSON的设计目标是简单和通用,而YAML的设计主要在于易于阅读和支持任何复杂数据结构。
YAML可看作JSON的自然超集,提供更好的可读性和完整的信息模型。
每一个JSON文件都是一个有效的YAML文件,JSON迁移向YAML是很容易的事。
与XML的关系
YAML和XML没有直接相关性。YAML是一种数据序列化语言。XML是一种向后兼容的通用标记语言(SGML)。XML有设计约束,而YAML没有。
四、YAML语法
基本规则
YAML区分大小写
使用缩进表示层级关系
缩进使用空格,不能使用TAB(同层级左对齐即可,不要求空格数,一般用2或4个空格)
使用#号表示注释(YAML只有行注释)
数据结构
字典:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 对象
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
纯量:单个的、不可再分的值,即基本数据类型
注意:重复定义时,后面的值会覆盖前面的值;值为 int, float, bool等类型,解析后会转换为对应的类型
字典
key: value
缩进表层级关系
key:
child-key1: child-value1
child-key2: child-value2
缩进只能用空格,不能用TAB键
上面的用流式写法表示:
key: {child-key1: child-value1, child-key2, child-value2}
数组郑州人流多少钱 http://www.hnmt120.com/
language :
- Java
- Python
- Golang
等价于 {‘language’ : [‘Java’, ‘Python’, ‘Golang’]}
server :
-
host : 127.0.0.1
port : 80
-
host : 127.0.0.1
port : 8081
流式写法 server : [{‘host’ : ‘127.0.0.1’, ‘port’ : ‘80’ } , {‘host’ : ‘127.0.0.1’, ‘port’ : ‘80’ } ]
-
- Java
- Python
- Golang
等价于 [[‘Java’, ‘Python’, ‘Golang’]]
?
- complexkey1
- complexkey2
:
- complexvalue1
- complexvalue2
等价于 {[complexkey1, complexkey2] : [complexvalue1, complexkey2]}
纯量
纯量,也就是常量吧,整数,浮点数,字符串,NULL,日期,布尔,时间。以下用一个例子演示
int:
- 333
- 0b1010_0111_0100_1010_1110 # 二进制表示
float:
- 3.14
- 6.8523015e+5 # 科学计数法表示
string:
- 'bcat' # 双引号转译 单引号不转译 下面是多种字符串换行写法
- line
newline # 换行连接处会转译成一个空格
- |
line # 换行处会有 \n 换行符
newline
- >
line # 字符串结尾会有 \n 换行符
newline
- "line\ # 换行处无空格 无 \n 换行符
newline"
null:
- username : 'bcat'
- ~ # ~ 表示null
date:
- 2019-12-17 # 日期必须使用 ISO 8601格式 即 yyyy-MM-dd格式
datetime:
- 2019-12-17T16:15:31+08:00 #时间使用ISO 8601格式 时间日期之间用T连接 时间时区之间用+分隔其他特殊符号