Lei*_*ana 1 ruby arrays each json object
我有一个哈希值,它是在进行API调用并通过JSON.parse运行时创建的:
{
"results": [
{
"zip": "08225",
"city": "Northfield",
"county": "Atlantic",
"state": "NJ",
"distance": "0.0"
},
{
"zip": "08221",
"city": "Linwood",
"county": "Atlantic",
"state": "NJ",
"distance": "1.8"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我试图从每个对象中获取所有的zipcodes并将它们放入一个数组中:
zipcode_array = Array.new
Run Code Online (Sandbox Code Playgroud)
我试过以下代码:
locations.each do |zipcode|
zipcode_array.push(['results'][i]['zip'])
end
Run Code Online (Sandbox Code Playgroud)
我想我的最终输出是:
zipcode_array = ["08225", "08221"]
Run Code Online (Sandbox Code Playgroud)
任何人都有关于我失踪的提示吗?
你的代码似乎缺少i变量(索引),但实际上你并不需要它,因为你总是可以使用map函数来实现惯用的Ruby代码:
require "json"
response = '{
"results": [
{
"zip": "08225",
"city": "Northfield",
"county": "Atlantic",
"state": "NJ",
"distance": "0.0"
},
{
"zip": "08221",
"city": "Linwood",
"county": "Atlantic",
"state": "NJ",
"distance": "1.8"
}
]
}'
parsed_response = JSON.parse(response)
zipcode_array = parsed_response["results"].map { |address| address["zip"] }
Run Code Online (Sandbox Code Playgroud)