yaml c语言,yaml文件编写

  yaml c语言,yaml文件编写

  转载,原地址:http://www.ruanyifeng.com/blog/2016/07/yaml.html

  编程必然需要写配置文件,如何写配置也是一门学问。

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

  本文以JS-YAML的实现为例,介绍了YAML的语法。你可以去网上演示来验证下面的例子。

  一、引言YAML语言(读音/jml/)的设计目标是方便人类阅读和书写。它本质上是一种通用的数据序列化格式。

  它的基本语法规则如下。

  区分大小写的缩进表示层次关系。缩进时不允许使用Tab键,只允许使用空格。缩进空格的数量无关紧要。只要同一级别的元素靠左对齐,#就表示注释。从这个字符到行尾,它将被解析器忽略。

  YAML支持三种数据结构。

  对象:一组键值对,也称为映射)/哈希)/字典数组:一组按顺序排列的值,也称为序列)/列表标量:单个不可分的值。这三种数据结构描述如下。

  二。对象的一组键值对,用冒号结构表示。

  动物:宠物被转换成JavaScript如下。

  {animal: pets} Yaml还允许用另一种方式将所有键值对写成一个内联对象。

  Hash: {name: Steve,foo: bar}被转换成JavaScript如下。

  {hash: {name: Steve ,foo: bar}} III。数组在连接行开始的一组行构成一个数组。

  -猫-狗-金鱼转换成JavaScript如下。

  [猫,狗,金鱼]如果数据结构的子成员是一个数组,可以在该项下缩进一个空格。

  -猫-狗-金鱼转换成JavaScript如下。

  [[Cat , Dog ,金鱼]]数组也可以采用内联表示法。

  动物:[猫,狗]转换成JavaScript如下。

  {动物:[猫,狗]}四。复合结构对象和数组可以组合形成一个复合结构。

  语言:-Ruby-Perl-Python网站:yaml.org YAML Ruby:ruby-lang.org Python:python.org Perl:use.perl.org转换成JavaScript如下。

  {语言:[Ruby , Perl , Python],网址:{YAML: YAML.org ,Ruby: ruby-lang.org ,Python: python.org ,Perl: use.perl.org}}五、标量以下数据类型属于JavaScript的标量。

  布尔值整数浮点数空时间日期值直接用文字形式表示。

  Number: 12.30转换成JavaScript如下。

  {number: 12.30}布尔值用真和假来表示。

  IsSet: true被转换成JavaScript如下。

  {isSet: true} null用~表示。

  Parent: ~转换成JavaScript如下。

  {parent: null}时间采用ISO8601格式。

  ISO 8601:2001-12-14t 21:59:43.10-05:00转换为JavaScript如下。

  {iso8601:新日期( 2001-12-14t 21:59:43.10-05:00 )}日期以复合iso8601格式由年、月和日表示。

  日期:1976年7月31日,转换成JavaScript如下。

  { date:new date( 1976-07-31 )} YAML允许使用两个感叹号来转换数据类型。

  e:str 123f:True被转换成JavaScript如下。

  {e: 123 ,f:真 }六。字符串字符串是最常见和最复杂的数据类型。

  默认情况下,字符串不用引号表示。

  Str:这是一行转换成JavaScript的字符串,如下所示。

  {str:这是一行字符串 }如果字符串包含空格或特殊字符,需要用引号括起来。

  Str: content: string 转换成JavaScript如下。

  {str: content: string}单引号和双引号都可以,双引号不会转义特殊字符。

  S1: Content \ n string S2: Content \ n string 转换成JavaScript如下。

  {s1: content \\n string ,s2: content \n string}如果单引号中有单引号,则必须用两个单引号连续转义。

  Str:劳动节被转换成JavaScript如下。

  { str:劳动节 }字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。

  str:这是一段多行字符串转为Java脚本语言如下。

  { str:这是一段多行字符串 } 多行字符串可以使用保留换行符,也可以使用折叠换行。

  这个:美食吧那个:Foo Bar转为Java脚本语言代码如下。

  {这个: Foo\nBar\n ,那个: Foo Bar\n }表示保留文字块末尾的换行,-表示删除字符串末尾的换行。

  s1: Foos2: Foos3: - Foo转为Java脚本语言代码如下。

  { s1: Foo\n ,s2: Foo\n\n\n ,s3: Foo }字符串之中可以插入超文本标记语言标记。

  邮件: p style=color: red 段落/p转为Java脚本语言如下。

  {邮件: \np style=color: red\n段落\n/p\n }七、引用锚点和别名*,可以用来引用。

  默认值:默认值适配器:postgres主机:本地主机开发:数据库:myapp _开发:*默认值测试:数据库:myapp _ test:*默认值等同于下面的代码。

  默认值:适配器:postgres主机:本地主机开发:数据库:myapp _开发适配器:postgres主机:localhosttest:数据库:myapp_test适配器:postgres主机:本地主机用来建立锚点(默认值),表示合并到当前数据,*用来引用锚点。

  下面是另一个例子。

  -秀尔史蒂夫克拉克整齐的太阳-柳文欢-*肖维尔转为Java脚本语言代码如下。

  [史蒂夫,克拉克,整齐的太阳,柳文欢,史蒂夫]八、函数和正则表达式的转换这是JS-YAML库特有的功能,可以把函数和正则表达式转为字符串。

  #举例。yml fn:函数(){ return 1 } reg:/test/解析上面的阳明海运股份有限公司文件的代码如下。

  var YAML=require( js-YAML );var fs=require( fs );请尝试YAML。负载(fs。读取文件同步(./example.yml , utf8 );控制台。日志(doc);} catch(e){控制台。日志(e);} 从Java脚本语言对象还原到格式文件的代码如下。

  var YAML=require( js-YAML );var fs=require( fs );var obj={ fn: function () { return 1 },reg:/test/};请尝试{ fs.writeFileSync( ./example.yml ,yaml.dump(obj), utf8 );} catch(e){控制台。日志(e);} 九、参考链接YAML 1.2规格来自红宝石的维基百科的YAML(完)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: