Ruby中的YAML解析:如何获取特定类型元素的数组?

Ruby中的YAML解析:如何获取特定类型元素的数组?,ruby,parsing,yaml,Ruby,Parsing,Yaml,我有以下YAML: - name: List of monkeys - author: Nicolas Raoul - version: 1 - monkey: Chee-Chee - monkey: Curious George - monkey: Mojo 如何获得Ruby中的猴子阵列?元数据参数(名称、作者等)的数量是可变的 它将返回类似于[Chee-Chee,好奇的George,Mojo] 注意:我不想创建一个包含所有猴子作为子项的monkeys节点,因为有很多猴子,我想让文件非常简单

我有以下YAML:

- name: List of monkeys
- author: Nicolas Raoul
- version: 1
- monkey: Chee-Chee
- monkey: Curious George
- monkey: Mojo
如何获得Ruby中的猴子阵列?元数据参数(名称、作者等)的数量是可变的

它将返回类似于
[Chee-Chee,好奇的George,Mojo]


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

好吧,你的
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
,它不必位于您的数据块中。

我是YAML新手,因此欢迎任何建议:-)列表将由客户编辑,因此必须非常简单。注意:每只猴子都有一些属性,我在这里并不是为了简洁而写的。你的答案对我所问的问题是有效的。我的假设是,为了简洁起见,我可以忽略猴子的属性,这是错误的,因此我提出了一个新问题: