• HOME
  • DOCS
  • WTF
  • TECH
  • LIFE
  • PAGES
    • ARCHIVE
    • TAGS
    • ABOUT
    • FRIENDS
    • RSS
  • TOOLS
    • GEO
    • RANDOM()
    • GOO.GL
    • CSS HEART
Aj's Blog

记录时间溜走的瞬间和折腾过的那些事

什么是YAML?YAML的用途
2012-12-05 @ TECH YAMLYAML用途

一、YAML的定义

YAML Ain’t Markup Language
YAML 是一种数据序列化语言,是一种可读的文本的数据结构,它的设计目标是使人们容易读,程序容易处理。
它类似XML,但是比XML简单。

YAML的设计目标如下:

  1. YAML 文档很容易阅读。
  2. YAML 使用本地结构存储数据。
  3. YAML 数据在编程语言之间是可移植的。
  4. YAML 有一个固定的模型来支持一般的开发工具。
  5. YAML 支持基于流的处理。
  6. YAML 表现力强,而且容易扩充。
  7. YAML 容易实现和使用。

WIKI: http://zh.wikipedia.org/wiki/YAML

ORG: http://www.yaml.org/

二、YAML基本语法

YAML中数据主要由序列(sequence),map(有的也叫做hash)和标量(scalar )来表示。
语法比较简单,易于人们阅读。
注释由#开头
序列由”-“开头
map用key:value的格式
“—“表示一个yaml文档的开始
list和hash可以嵌套
block的概念:一个 block 是一段文本。
Inline Collections:数据都写在一行

例子:

1、序列
- apple
- banana
- carrot

2、嵌套序列
- apple
- 
 - foo 
 - bar 
 - x123 
- banana 
- carrot 

3、map
foo: whatever 
bar: stuff 
		
4、map和sequence嵌套
foo: whatever 
bar: 
 - uno
 - dos 

5、map嵌套
foo: whatever 
bar: 
 fruit: apple 
 name: steve 
 sport: baseball

6、完整实例
# Tom Smith's Family
name: Tom Smith
age: 37  
spouse: 
 name: Jane Smith  
 age: 25
children:
 - name: Jimmy Smith
   age: 15  
 - name1: Jenny Smith
   age1: 12

三、YAML的用途

也许有人会说 YAML 和 XML 只是有其不同的应用场景和使用范围,也许有人会质疑 YAML 在性能上是否同样可以超越 XML,而且这些争论一直都存在着,

然后大家都不得不公认的是:YAML 凭借自己的易读性,易操控性已经成为 XML 的对手。

也许这对 XML 来说是不公平的,毕竟 XML 是由 SGML 演变来的,而 YAML 是全新设计的语言,并且其设计初衷就是为了使得数据的序列化更接近人类阅读习惯。

然而我们可以从中看到的是 YAML 的出现反映了一种趋势,或者说是一种喜好。

人们正在试图将规则复杂不易理解的编程方式通过某种努力去改变为更为简单方便,更为灵活好用的状态。

真是 YAML 语言的这种特质,使得我们不得不说 YAML, 想要爱你很容易。

1、YAML作为小型数据元的部分就不多说了,参考上面第二部分的例子便可明白。

2、YAML作为配置文件被越来越广泛的应用,比如Google GAE、Sina SAE等云服务的app配置文件
Google GAE中以一个 app.yaml 作为app的全局配置文件
YAML在GAE找那个的具体应用,参考:http://www.ccvita.com/416.html

下一篇:   了解Vagrant
上一篇:   CentOS VPS定时检测剩余内存、系统负载重启服务脚本
暂无评论

Cancel reply