YAML 简介
本文简要介绍 YAML™的理念,主要实现,特色以及一些缺憾。
YAML Ain't Markup Language
和GNU一样,YAML是一个递归着说“不”的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。
YAML不是XML。
为什么不是XML呢?因为:
- YAML的可读性好。
- YAML和脚本语言的交互性好。
- YAML使用实现语言的数据类型。
- YAML有一个一致的信息模型。
- YAML易于实现。
上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点:
- YAML可以基于流来处理;
- YAML表达能力强,扩展性好。
总之,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。
更多的内容及规范参见http://www.yaml.org。
语法
Structure通过空格来展示。Sequence里的项用"-"来代表,Map里的键值对用":"分隔.
这几乎就是所有的语法了.
比如……
一般YAML文件扩展名为.yaml。比如:John.yaml
name: John Smith age: 37 spouse:name: Jane Smithage: 25 children:- name: Jimmy Smithage: 15- name: Jenny Smithage 12 |
John今年37岁,有一个幸福的四口之家。两个孩子Jimmy 和Jenny活泼可爱。妻子Jane年轻美貌。
如果深入研究的话还可能发现一些社会问题。
可见YAML的可读性是不错。
JYaml——YAML的Java实现
YAML已经有了不少实现,详细的实现列表参见http://www.yaml.org/download.html。
其中JYaml(http://jyaml.sourceforge.net)是YAML的Java实现。
JYaml简介
YAML使用实现语言的数据类型。我们看一下一些JYaml支持的Java数据类型:
- 原始数据和封装类(比如int,java.lang.Integer)
- JavaBean兼容对象(Structure支持)
- Collection (sequence支持)
- List
- Set
- Map (map支持)
- Arrays (sequence支持)
- BigInteger 和BigDecimal
- Date
我们给出John.yaml的java描述:
public class Person {private String name;private int age;private Person sponse;private Person[] children;// setXXX, getXXX方法略.
}
|
现在让我们装配一个Jone:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
