什么是YAML

  • YAML的语法和其他高阶语言类似,并且可以简单表达清单、散列表,标量等资料形态、。

  • 它使用空白符号缩排和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种设定档、倾印除错内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。

  • 尽管它比较适合用来表达阶层式(hierarchical model)的数据结构,不过也有精致的语法可以表示关联性(relational model)的资料。
    由于YAML使用空白字符和分行来分隔资料,使的他特别适合用grep、Python、Perl、Ruby操作。

  • 其让人最容易上手的特色是巧妙避开各种封闭符号,如:引号、各种括
    号等,这些符号在嵌套结构中会变得复杂而难以辨认。

多行缩进

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

适用场景编辑

脚本语言

  • 由于实现简单,解析成本很低,YAML特别适合在脚本语言中使用。列一下现有的语言实现:Ruby,Java,Perl,Python,PHP,OCaml,JavaScript,Go 除了Java 和 Go,其他都是脚本语言。

序列化

  • YAML比较适合做序列化。因为它是宿主语言数据类型直转的。

配置文件

  • YAML做配置文件也不错。写YAML要比写XML快得多(无需关注标签或引号),并且比ini文档功能更强。