美文网首页
YAML应用

YAML应用

作者: guru200 | 来源:发表于2015-10-20 15:54 被阅读2323次

    YAML 的定义是:“YAML Ain ’ t a Markup Language”,或者“Yet Another Markup Language”。

    特点

    • YAML 的数据组织主要依靠的是空白,缩进,分行等结构,可读性好。
    • YAML 实现简单,解析成本很低,和脚本语言的交互性好。
    • YAML 很容易就可以插入另一个 YAML 文件,甚至其他类型的文件,包括 XML, SDL, JSON 等。
    • YAML 使用实现语言的数据类型。
    • YAML 可以基于流来处理;
    • YAML 表达能力强,扩展性好。

    说明

    YAML百度百科
    YAML官网

    基础

    • 使用空白字符(不能使用Tab)分层,同层元素左侧对齐;
    • 用“-”来表示一些序列的项(Sequence);
    • 用“:”来表示一对项目(Map)里的栏目(Key)和其相应的值(Value);
    • 单行注解由“#”字号开始,可以出现在行中任何位置;
    • 字符串一般不使用引号,但必要的时候可以用引号框住;
    • YAML也有用来描述好几行相同结构的数据的缩写语法,数组用“[]”包括起来,hash用“{}”来包括。

    其它

    • YAML使用可打印的Unicode字符,可使用UTF-8或UTF-16
    • 使用双引号表示字串时,可用倒斜线(\)进行特殊字符转义
    • 区块的字串用缩排和修饰词(非必要)来和其他资料分隔,有新行保留(使用符号<kbd>|</kbd>)或新行折叠(使用符号<kbd>></kbd>)两种方式
    • 在单一档案中,可用连续三个连字号(---)区分多个档案
    • 可选择性的连续三个点号(...)用来表示档案结尾(在流式传输时非常有用,不需要关闭流即可知道到达结尾处)
    • 重复的内容可使从参考标记星号 (*)复制到锚点标记(&)
    • 指定格式可以使用两个惊叹号 ( !! ),后面接上名称
    • 允许在文件中加入选择性的空行,以增加可读性
    • 在缩排中空白字符的数目并不是非常重要,只要相同阶层的元素左侧对齐就可以了

    实例

    简单实例

    John.yaml

    name: John Smith
    age: 37
    spouse:
        name: Jane Smith
        age: 25
    children:
        -  name: Jimmy Smith
           age: 15
        -  name: Jenny Smith
           age: 12
    

    John今年37岁,有一个幸福的四口之家。两个孩子Jimmy 和Jenny活泼可爱。妻子Jane年轻美貌。
    也可缩写为:

    name: John Smith
    age: 37
    spouse: {name: Jane Smith, age: 25}
    children: [{name: Jimmy Smith, age: 15}, {name: Jenny Smith, age: 12}]
    

    用 YAML 表达的一个购物发票

      --- !clarkevans.com/^invoice 
      invoice: 34843 
      date : 2001-01-23 
      bill-to: &id001 
        given : Chris 
        family : Dumars 
        address: 
        lines: | 
        458 Walkman Dr. 
        Suite #292 
        city : Royal Oak 
        state : MI 
        postal : 48046 
      ship-to: *id001 
      product: 
        - sku : BL394D 
        quantity : 4 
        description : Basketball 
        price : 450.00 
        - sku : BL4438H 
        quantity : 1 
        description : Super Hoop 
        price : 2392.00 
      tax : 251.42 
      total: 4443.52 
      comments: > 
        Late afternoon is best. 
        Backup contact is Nancy 
        Billsmer @ 338-4338.
    

    比较

    JSON

    JSON的语法是YAML1.2版的子集,同时非常接近YAML1.0与1.1版的子集,因此大部分的JSON文件都可以被YAML的剖析器剖析。这是因为JSON的语法结构和YAML的内置格式相同。虽然大范围的分层也可以使用类似JSON的内置格式,不过YAML标准并不建议这样使用,除非这样编写能让文件可读性增加。YAML的许多扩展在JSON是找不到的,如:进阶资料形态、关系锚点、字串不需要双引号、映射资料形态会储存键值的顺序

    XML

    相关文章

      网友评论

          本文标题:YAML应用

          本文链接:https://www.haomeiwen.com/subject/vucvqttx.html