在Ruby中解析YAML:如何获取某种类型元素的数组?

时间:2011-07-05 03:08:57

标签: ruby parsing yaml

我有以下YAML:

- name: List of monkeys
- author: Nicolas Raoul
- version: 1
- monkey: Chee-Chee
- monkey: Curious George
- monkey: Mojo

如何在Ruby中获取猴子数组?元数据参数(名称,作者,...)的数量是可变的。

它将返回类似[Chee-Chee, Curious George, Mojo]

的内容

注意:我不想创建一个包含所有猴子的monkeys节点作为子项,因为有很多猴子,我想保持文件非常简单。 < / p>

1 个答案:

答案 0 :(得分:1)

你的YAML看起来有点疯狂:每一行都是hash,包含一个元素。尽管如此,如果你坚持使用它,这样的东西会给你一系列猴子名字:

require 'yaml'

data = YAML.load(DATA.read)
p data.map { |row| row['monkey'] }.compact

__END__
- name: List of monkeys
- author: Nicolas Raoul
- version: 1
- monkey: Chee-Chee
- monkey: Curious George
- monkey: Mojo

显然你可以从任何地方加载YAML,它不必在你的DATA块中。