多语言展示
当前在线:447今日阅读:126今日分享:42

yaml入门教程

最近身边旭东朋友都在咨询小编关于yaml入门教程,小编说实话对这方面也不是特别了解。但是小编查阅了相关的网络资源,为大家带来这一份资源,希望能够帮助到大家!
方法/步骤
1

YAML(英语发音:/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达资料序列的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。Clark Evans在2001年首次发表了这种语言[1],另外Ingy döt Net与Oren >Ben-Kiki也是这语言的共同设计者[2]。目前已经有数种编程语言或脚本语言支援(或者说解析)这种语言。

2

YAML 仍然是一门标记性语言,但为了强调这门语言以数据为中心,而不是以标记语言为中心。采用反向缩略语重新命名。

3

基本语法规则: 1.大小写敏感  2.使用缩进表示层级关系  3.不允许使用TAB键来缩进,只允许使用空格键来缩进  4.缩进的空格数量不重要  5.使用'#'来表示注释支持的数据格式:1.对象:键值对的集合,又称映射(mapping) / 哈希(hashes)/ 字典(dictionary) 2.数组: 一组按次序排列的值,又称序列(sequence) / 列表(list) 3.纯量(scalars):单个的,不可再分的值

4

以下分别介绍这三种数据格式对象对象的一组键值对,是用冒号结构来表示animal: pets转为JavaScript{ animal: 'pets' }YAML也支持另一种写法,将所有的键值对写成一个行内对象hash: { name: steve, foo: bar }转为JavaScript{ hash: { name: 'steve', foo: 'bar'}}

5

数组一组连词线开头的行,构成一个数组- Cat- Dog- Goldfish转为JavaScript[ 'Cat', 'Dog', 'Goldfish' ]数据的子结构也是一个数组,可以在该项下面缩进空格来表示层级关系-  - Cat  - Dog  - Goldfish转为JavaScript[ [ 'Cat', 'Dog', 'Goldfish'] ]数组也可以采用行内表示法animal: [Cat, Dog]转为JavaScript{ animal: ['Cat', 'Dog']}复合结构对象和数组可以结合使用,形成复合结构languages:  - Ruby  - Perl  - Pythonwebsites:  YAML: yaml.org  Ruby: ruby-lang.org  Python: python.org  Perl: user.perl.org转为JavaScript{  languages: [ 'Ruby', 'Perl', 'Python'],  websites:  {    YAML: 'yaml.org',    Ruby: 'ruby-lang.org',    Python: 'python.org',    Perl: 'user.perl.org'  }}

6

纯量纯量是最基本的、不可再分的值。 以下数据类型都是javaScript的纯量。- 字符串 - 布尔值 - 整数 - 浮点数 - null - 时间 - 日期数值直接以字面量的形式表示number: 12.30转为JavaScript{ number: 12.30 }布尔值以true 和false 来表示isSet: true转为JavaScript{ isSet: true }null用 ~ 表示parent: ~转为JavaScript{ parent: null }时间用 ISO8601 格式iso8601: 2001-12-14t21:59:43.10-05:00转为JavaScript{ iso8601: new Date('2001-12-14t21:59:43.10-05:00') }日期采用复合 ISO8601 格式的年、月、日表示date: 1976-12-20转为JavaScript{ date: new Date('1976-12-20') }YAML 允许使用两个感叹号,强制转换数据类型e: !!str 123 f: !!str true转为JavaScript{ e: '123', f: 'true'}字符串字符串是最常见,也是最复杂的一种数据类型。 字符串默认不适用引号表示。str : 这是一行字符串转为JavaScript{ str: '这是一行字符串'}如果字符串之间存在空格或其他特殊字符,需放在单引号之中。str: '内容: 字符串'转为JavaScript{ str: '内容: 字符串'}单引号和双引号都可以使用,双引号不会对特殊字符进行转义。s1: '内容\n字符串's2: '内容\n字符串'转为JavaScript{ s1: '内容\\n字符串', s2: '内容\n字符串'}单引号之中如果还有单引号,必须连续使用两个单引号进行转义str: 'labor''s day'转为JavaScript{ str: 'labor\'s day'}字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。str: 这是一段  多行  字符串转为JavaScript{ str: '这是一段 多行 字符串'}多行字符串可以采用 | 保留换行符,也可以使用 > 折叠换行。this: |  Foo  Barthat: >  Foo  Bar转为JavaScript{ this: 'Foo\nBar\n', that:'Foo Bar\n' }“ + ” 表示保留文字块末尾的换行,-表示删除字符串末尾的换行。s1: |      Foos2: |+    Foos3: |-    Foo转为JavaScript{ s1: 'Foo\n', s2: 'Foo\n\n\n', s3:'Foo' }字符串之中可以插入 HTML 标记message: |    

       段落    

转为JavaScript{ message: '\n

\n 段落\n

\n' }

7

引用锚点 & 和别名 * , 可以用来引用defaults: &defaults    adapter: postgres    host: localhost development:   database: myapp_development,   <<: *defaults test:    database: myapp_test,    <<: *defaults相当于defaults:    adapter: postgres    host: localhost development:   database: myapp_development,   adapter: postgres    host: localhost test:    database: myapp_test,    adapter: postgres    host: localhost&用来建立锚点(defaults),<<表示合并到当前数据,*用来引用锚点。下面另外一个例子- &showell Steve - Clark - Brian - Oren - *showell转为JavaScript[ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve' ]函数和正则表达式的转换这是js-yaml库特有的功能,可以把函数和正则表达式转为字符串#exmaple.ymlfn: function() { return 1 }reg: /test/解析上面的yml文件代码如下:var yaml = require('js-yaml');var fs = require('fs');try{   var doc = yaml.load(       fs.readFileSync('./example.yml', 'utf8')   );} catch(e){      console.warn(e);}从javaScript对象还原到yaml代码如下:var yaml = require('js-yaml'); var fs = require('fs'); var obj = {    fn: function() { return 1 },    reg: /test/ } try{     fs.writeFileSync('./exmaple.js', yama.dump(obj), 'utf8') } catch(e) {    console.log(e); }

推荐信息