yaml配置字符串数组,yaml c#
一、为什么要学?
JSON可以很好地支持配置文件中的数据格式描述和复杂的数据内容展示,包括语法高亮、自动格式化、验证工具等。但是注释不足,过于严格,长字符串转换问题等等。对于运维人员来说,面对复杂的数据结构,他们不得不另辟蹊径。
YAML(YAML不是标记语言)是一种非常灵活的格式,几乎是JSON的超集,已经在一些著名的项目中使用,比如Travis CI、Circle CI和AWS CloudFormation。YAML的图书馆几乎和JSON一样无处不在。除了支持注释、换行符、多行字符串、裸字符串和更灵活的类型系统,YAML还支持引用文件以避免重复代码。
二。介绍
YAML(发音/JML/)的设计目标是方便人类阅读和书写。它本质上是一种通用的数据序列化格式。
YAML有一个小怪癖。所有YAML档案的起始行应该是-。这是YAML格式的一部分,表示文件的开始。
它的基本语法规则如下。区分大小写
使用缩进来表示层次关系。
缩进时不允许使用Tab键,只允许使用空格。
缩进空格的数量无关紧要,只要同一级别的元素的左侧对齐即可。
#表示注释,解析器将从这个字符一直忽略到行尾。
YAML支持三种数据结构。
对象:一组键值对,也称为映射)/散列)/字典。
数组:按顺序排列的一组值,也叫序列)/列表。
标量:单一的、不可分割的值。
下面详细介绍三种数据结构:
第三,对象
用冒号表示,格式为key: value。在冒号后添加一个空格:
-
#表示url属性值;
网址:https://www.liuluanyi.cn
转换为JavaScript,如下所示:
{ url: https://www.liuluanyi.cn}
Yaml还允许用另一种方式将所有键值对写成一个内联对象。
-
主机:{ ip: 10.1.1.1,端口:2222 }
转换为JavaScript,如下所示:
{主机:{ ip: 10.1.1.1 ,端口:2222 } }
四。排列
列表中的所有成员都从相同的缩进级别开始,并以-(一个横条和一个空格)开头:
-
ipaddr:
# IP地址列表
- 120.168.117.21
- 120.168.117.22
- 120.168.117.23
转换为JavaScript,如下所示:
ipaddr: [ 120.168.117.21 , 120.168.117.22 , 120.168.117.23 ]
如果数据结构的子成员是一个数组,可以在该项下缩进一个空格。
-
-来源
目的地
-服务
转换为JavaScript,如下所示:
[ [源,目的地,服务] ]
数组也可以采用内联(或流)表示。
服务:[FTP、SSH]
公司:[{id: 1,名称:公司1,价格:200W},{id: 2,名称:公司2,价格:500W}]
转换为JavaScript,如下所示:
{服务:[ FTP , SSH ] }
{公司:
[ { id: 1,姓名: 公司1 ,价格: 200W },
{ id: 2,姓名:“公司2”,价格:“500瓦”} ] }
对象和数组一起使用。
语言:
-露比
- Perl
-蟒蛇
网站:
yaml.org YAML
鲁比:ruby-lang.org
python:python.org
转换为JavaScript,如下所示:
{语言:[ Ruby , Perl , Python ],
网站:{ YAML: yaml.org ,Ruby: ruby-lang.org ,Python: python.org } }
常量字符串
布尔值
整数
浮点数
空
时间
日期
使用下面的示例可以快速理解常数的基本用法:
布尔型:
-真#真,真就好。
-假#假,假也行。
浮动:
- 3.14
-6.8523015e可采用5 #科学计数法
int:
- 123
-0b1010_0111_0100_1010_1110 #二进制表示
空:
节点名:“节点”
Parent: ~ #使用~表示空
字符串:
-哈哈。
-“Hello world”#您可以使用双引号或单引号来换行特殊字符。
-换行
newline2 #字符串可以拆分成多行,每一行都会转换成一个空格。
日期:
-2018-02-17 #日期必须使用ISO 8601格式,即yyyy-MM-dd
日期时间:
-2018-02-17T15:02:31 08:00 #时间采用ISO 8601格式,时间和日期用T连接,最后使用代表时区。
转为Java脚本语言如下:
{ boolean: [真,假],
浮动:[ 3.14,685230.15 ],
int: [ 123,685230 ],
null: { nodeName: node ,parent: null },
字符串:[哈哈,你好世界, newline newline2 ],
日期:[2018年2月17日星期六08:00:00 GMT 0800(中国标准时间) ],
日期时间:[星期六2018年2月17日格林威治时间0800年15时02分31秒(中国标准时间) ] }
特殊符号
1、YAML允许使用两个感叹号,强制转换数据类型。
e:str 123
外宾:啊!str true
转为Java脚本语言如下:
{ e: 123 ,f:真 }
2、 … 和-配合使用,在一个配置文件中代表一个文件的结束:
-
时间:20时03分20秒
玩家:萨米索萨
行动:罢工(失手)
.
-
时间:20时03分47秒
玩家:萨米索萨
动作:大满贯
.
3、在字符串中折叠换行, 保留换行符,这两个符号是YAML中字符串经常使用的符号,比如:
这个:
富(中国姓氏)
酒吧
那就是:
富(中国姓氏)
酒吧
转为Java脚本语言如下:
{这个: Foo\nBar\n ,那个: Foo Bar\n }
4、引用。重复的内容在YAML中可以使用来完成锚点定义,使用*来完成锚点引用,例如:
默认值:默认值
适配器:postgres
主机:本地主机
发展:
数据库:myapp _开发
:
测试:
数据库:myapp_test
:
转为Java脚本语言如下:
{默认值:{适配器: postgres ,主机: localhost },
发展:
{数据库: myapp_development ,
适配器:“postgres”,
主机:"本地主机"},
测试:
{数据库: myapp_test ,
适配器:“postgres”,
主机:"本地主机"} }注意,不能独立的定义锚点,比如不能直接这样写:党卫军萨米索萨;另外,锚点能够定义更复杂的内容,比如:
默认:默认
马克麦格威尔
萨米索萨
人力资源:*默认
那么整点相当于引用了系统默认值的数组,注意,人力资源:*默认要写在同一行。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。