关于yaml的介绍可以查看IBM的 yaml介绍 ,这里主要讲述yaml格式的设置及如何使用ruby读取yaml数据
yaml数据设置
yaml的语法:
Structure通过空格来展示。Sequence里的项用“-”来代表,Map里的键值对用";"分隔,根据上面的例子,我们设置成下面的格式,并保存为: yaml.yml
data:
name: John Smith
age: 37
spouse:
name: Jane Smith
age: 25
children:
- name: Jimmy Smith
age: 15
- name: Jenny Smith
age: 12
data1:
name: watir
age: 30
site: http://www.csdn.net
yaml数据的读取
代码如下:
#yaml.yml的存放位置
DATA_FILE = "D://ruby//simple//sample//lib//newFolder//yaml.yml"
#加载yml文件
problem = YAML.load(File.open(DATA_FILE))
puts problem.class
puts problem["data"].class
puts problem["data"]["children"].class
puts problem["data"]["children"][0]["name"]
puts problem["data1"]["name"]
puts problem["site"]
输出值为:
----------------------------------
Hash
Hash
Array
Jimmy Smith
watir
http://www.csdn.net
---------------------------------------
从输出可以看到:
1)通过problem = YAML.load(File.open(DATA_FILE)) 加载的数据是个Hash 值。
2)键值problem["data"]读取的也是个hash
3)Sequence children读取的是数组
总结:
从源文件的加载对象是Hash值,从源数据Structure读取对应的是Hash值,从Sequence中读取的是Array,可以分别使用Hash和数组的方式各种数据进行读取。