首先给出yaml的官方网站吧; http://yaml.org ,其中yaml是Yaml Ain't a Markup Language的递归缩写,在早先的含义是:Yet Another Markup Langage,这个简写的更换,说明了yaml是以数据为中心,而不是强调它的标记语言这一特性。
相对于json和xml,它的初衷是更加人性化的数据格式定义语言,它使用空白字符和分行来分隔数据,而且巧妙的避开各种封闭符号,比如引号和括号,以避免这些符号在复杂层次结构中变得难以辨识。
相对于xml,yaml的优点有:
(1)可读性好
(2)和脚本语言交互性好
(3)有一个一致的信息模型
(4)易于实现
对于json来说,其实json的语法是yaml的子集,大部分的json文件都可以被yaml的解析器解析。
yaml比较适合做序列化,因为它是宿主语言类型直接转换得到的。
yaml做配置文件也不错,写yaml比写xml要快的多,无需关注标签或者引号,而且它比ini的文档功能更强。
不过需要说明的是,yaml没有定义自己的属性类型,它依赖于具体的语言实现。一个yaml文件,在不同语言中解析后得到的数据类型可能会不同,由于它的兼容性问题,因此不同语言之间的数据流转换不建议使用yaml。