yaml配置字符串数组,yaml c#

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 设计一个简单的C#控制台应用程序,C#控制台程序,C# 创建控制台应用程序
  • 深入解析windows第8版,深入解析C#(第4版)
  • 数组代码,c# 数组操作,C# 数组实例介绍(图文)
  • 学会C#要多久,学会c#要多久,c#学习之30分钟学会XAML
  • 回溯法01背包问题c,回溯法求解01背包问题伪代码,C#使用回溯法解决背包问题实例分析
  • xml文件转义字符,xml转意字符,C# XML中的转义字符操作
  • winform 进度条控件,c# 进度条使用
  • winform 进度条控件,c# 进度条使用,C#使用winform实现进度条效果
  • winform backgroundworker,c# isbackground
  • winform backgroundworker,c# isbackground,C# BackgroundWorker用法详解
  • lua与c#交互,lua c#
  • lua与c#交互,lua c#,ToLua框架下C#与Lua代码的互调操作
  • linq c#,linq原理 c#
  • linq c#,linq原理 c#,c#中LINQ的基本用法实例
  • java decimal保留两位小数,sql中decimal函数保留2位小数,C#中decimal保留2位有效小数的实现方法
  • 留言与评论(共有 条评论)
       
    验证码: