YAML文件

作者: 廖马儿 | 来源:发表于2017-07-12 12:19 被阅读28次

    简介

    YAML:YAML Ain't Markup Language 另一种标记语言。(YAML不是一种置标语言)
    但为了强调这种语言以数据做为中心,而不是以置标语言(也就是说标记语言,像XML, HTML等)为重点,而用返璞词重新命名。
    它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。

    它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。


    格式

    数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号-来表示,map结构里面的key/value对用冒号:来分隔。样例如下:

    house:
      family:
        name: Doe
        parents:
          - John
          - Jane
        children:
          - Paul
          - Mark
          - Simone
      address:
        number: 34
        street: Main Street
        city: Nowheretown
        zipcode: 12345
    

    字串不一定要用双引号标识;
    在缩排中空白字符的数目并不是非常重要,只要相同阶层的元素左侧对齐就可以了(不过不能使用TAB字符);
    允许在文件中加入选择性的空行,以增加可读性;
    在一个档案中,可同时包含多个文件,并用“——”分隔;
    选择性的符号“...”可以用来表示档案结尾(在利用串流的通讯中,这非常有用,可以在不关闭串流的情况下,发送结束讯号)。

    单行缩写:

    YAML也有用来描述好几行相同结构的数据的缩写语法,数组用'[]'包括起来,hash用'{}'来包括。因此,上面的这个YAML能够缩写成这样:

    house:
      family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] }
      address: { number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 }
    

    适用场景:

    1)脚本语言
    由于实现简单,解析成本很低,YAML特别适合在脚本语言中使用。列一下现有的语言实现:Ruby,Java,Perl,Python,PHP,OCaml,JavaScript,除了Java,其他都是脚本语言。
    2)序列化
    YAML比较适合做序列化。因为它是宿主语言数据类型直转的。
    3)配置文件
    YAML做配置文件也不错。写YAML要比写XML快得多(无需关注标签或引号),并且比ini文档功能更强。
    比如Ruby on Rails的配置就选用的YAML。对ROR而言,这很自然,也很省事.
    由于兼容性问题,不同语言间的数据流转建议不要用YAML.

    相关文章

      网友评论

        本文标题:YAML文件

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