ruby-on-rails - 使用 Ruby 通过嵌套 JSON 对象进行过滤并获取具有特定键的 JSON

标签 ruby-on-rails arrays ruby json ruby-on-rails-3

我目前有一个类似于

的嵌套 JSON 对象
{
"People": [
    {
        "Name": "James",
        "Age": "18",
        "Gender": "Male",
        "Sports": []
    },
    {
        "Name": "Sarah",
        "Age": "19",
        "Gender": "Female",
        "Sports": [
            "Soccer",
            "Basketball",
            "Football"
        ]
    }
] 
}

作为 Ruby 新手,我的目标是过滤整个 json,并仅返回“Sports”数组包含内容的 json 对象。因此,在上述场景中,我期望获得以下对象作为最终结果:

    {
        "Name": "Sarah",
        "Age": "19",
        "Gender": "Female",
        "Sports": [
            "Soccer",
            "Basketball",
            "Football"
        ]
    }

我是否必须启动一种新方法来执行此类操作?或者在这种情况下使用常规的 ruby​​ 调用会起作用吗?

最佳答案

尽管 @philipyoo 的答案是正确的,但它缺少关于如何“过滤”解析的 JSON 的解释。如果您是 ruby​​ 新手,请查看 Array#keep_if :http://ruby-doc.org/core-2.2.0/Array.html#method-i-keep_if

require 'json'

people = JSON.parse("{long JSON data ... }")
people_with_sports = people.fetch('People', []).keep_if do |person|
  !person.fetch('Sports', []).empty?
end

关于ruby-on-rails - 使用 Ruby 通过嵌套 JSON 对象进行过滤并获取具有特定键的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36273667/

相关文章:

ruby-on-rails - 有没有一种简单的方法可以在 Passenger 的请求周期之外运行垃圾收集?

html - 您如何链接到 ruby​​ on rails 中的网站图标?

c++ - 是否可以制作一个结构节点类型的数组?

ruby - Logstash - csv 输出标题

ruby-on-rails - 使用 ActiveRecord::Serialization.to_xml 构建动态字段

ruby-on-rails - ruby (rails) Net::HTTPResponse 未定义的方法关闭了吗?

ruby-on-rails - 从 Ruby on Rails 执行系统任务的最佳方式是什么?

java - 如何计算多维数组中包含零的列的数量

具有大型数组的 Windows 上的 Python 多处理

ruby - 究竟什么是匿名函数?