相关文章推荐
坏坏的柿子  ·  sql server ...·  1 年前    · 
非常酷的手套  ·  c# wpf window close ...·  1 年前    · 
健壮的墨镜  ·  博士申请 | ...·  1 年前    · 

YAML Ain’t Markup Language
https://yaml.org/

YAML 语言教程 - 阮一峰
http://www.ruanyifeng.com/blog/2016/07/yaml.html

基本语法:
大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
‘#’表示注释

yaml中的3种数据类型

对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
纯量(scalars):单个的、不可再分的值

yaml在线编辑/转json

http://www.bejson.com/validators/yaml_editor/

字符串

多行字符串

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

str: 这是一段

转成json是

"str": "这是一段 多行 字符串"

| 竖线保留换行符

this: |

对应 json

"this": "Foo\nBar\n"

|+ 保留末尾换行

|- 删除末尾换行

s1: |
s2: |+
s3: |-

对应 json

"s1": "Foo\n", "s2": "Foo\n\n\n", "s3": "Foo"

>大于号折叠换行

that: >

转为 json

"that": "Foo Bar\n"

yaml示例

#我是对象。。。顺便说一下注释是#
 animal: pets
 #注意:1.冒号后必须有空格
      #2.可以将键值对写成一个行内对象
      #3.空格标识层级关系
 hash: {name: Stave, foo: bar }
 #我是数组
 type:
  - Cat
  - Dog
  - Goldfish
 - big dog
 - small dog
 #我是纯量、最基本不可分
 number: 11.11
    #布尔类型
 isBeautiful: true
    #时间采用
 time: 20:41:58
 date: 2018-7-9
 str0: '我是字符串'
 str1: "我是双引号,单引号和双引号没有区别,不会对特殊字符转义"
 str2: 'It''s a test,单引号中如果有单引号的字符,需要转义'
 str3: ~  #~是空的意思
 str4: !!str true '两个!表示强制转换'
 str5: 我也可以不用引号引起来,厉害不
 str6: '但是有空格 或者 特殊字符* 我就必须放在引号中了'
 str7: 字符串可以换行
  每换一行都要有空格标记,换行符会被转义为空格
 #否则就报错,只能被注释了!!!!惨兮兮
 str8: |
    我不是一般的竖线,我是可以保留换行符的竖线
 str9: >
    可以折叠换行
 str10: |-
  我不想要末尾的换行符
 str11: |+
  我又想要末尾的换行符了,后面跟了一串尾巴
 str12:
  <p style="color:red">Hello world<p>

转成 json

"animal": "pets", "hash": { "name": "Stave", "foo": "bar" "type": [ "Cat", "Dog", "Goldfish" "Dog": [ "big dog", "small dog" "number": 11.11, "isBeautiful": true, "time": 74518, "date": "2018-7-9", "str0": "我是字符串", "str1": "我是双引号,单引号和双引号没有区别,不会对特殊字符转义", "str2": "It's a test,单引号中如果有单引号的字符,需要转义", "str3": null, "str4": "true '两个!表示强制转换'", "str5": "我也可以不用引号引起来,厉害不", "str6": "但是有空格 或者 特殊字符* 我就必须放在引号中了", "str7": "字符串可以换行 像这样 每换一行都要有空格标记,换行符会被转义为空格", "str8": "我不是一般的竖线,我是可以保留换行符的竖线\n", "str9": "我是 可以折叠换行 的大于号\n", "str10": "我不想要末尾的换行符", "str11": "我又想要末尾的换行符了,后面跟了一串尾巴\n", "str12": "<p style=\"color:red\">Hello world<p>"