温馨提示×

YAML简易教程

发布时间:2020-06-27 15:15:20 来源:51CTO 阅读:118 作者:nineteens 栏目:编程语言

  一、YAML简介

  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连接 时间时区之间用+分隔其他特殊符号


免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

免费拨打  400 100 2938 免费拨打 400 100 2938
24小时售后技术支持 24小时售后技术支持
返回顶部 返回顶部