【问题标题】:YAML parsing in Ruby: How to get array of a certain type of elements?Ruby 中的 YAML 解析:如何获取特定类型元素的数组?
【发布时间】:2011-07-05 03:08:56
【问题描述】:

我有以下 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 节点,因为猴子很多,我想保持文件非常简单。

【问题讨论】:

    标签: ruby parsing yaml


    【解决方案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 块中。

    【讨论】:

    • 我是 YAML 新手,欢迎提出任何建议 :-) 该列表将由客户编辑,因此必须非常简单。注意:每只猴子还有一些属性,为了简洁我没有在这里写。
    • 您的回答对我提出的问题有效。我认为我可以为了简洁而忽略猴子属性的假设被证明是错误的,所以我提出了一个新问题:stackoverflow.com/questions/6578370
    猜你喜欢
    • 1970-01-01
    • 2018-12-20
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 2022-06-12
    • 2012-12-30
    相关资源
    最近更新 更多