我目前有一个类似于
的嵌套 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/