我正在进行API调用,返回以下响应:
{
"firstName": "",
"lastName": "",
"address": {
"type": "",
"address1": "",
"address2": "",
"city": "",
"state": "",
"zipCode": "",
"country": ""
},
"race": "",
"phones": [
{
"type": "",
"number": ""
}
],
"joinDate": ""
}
如何访问"number"
数组中的"phones"
变量?我试过这个:
@phone = response["phones"].map { |s| s["number"] }
puts phone
但我没有运气。我使用的是Ruby 1.9.3。
答案 0 :(得分:2)
这是数组中的哈希。这将返回第一个数字:
@phone = response["phones"][0]["number"]
或者如果您想将所有数字都作为数组:
@numbers = response["phones"].map { |phones| phones["number"] }
@phone = @numbers.first
答案 1 :(得分:0)
试试这个:
@phone = response["phones"].map { |s| s["number"] }
puts @phone # puts the instance var @phone, not unassigned local var phone
答案 2 :(得分:0)
使用select
哈希:
phone = response["phones"].select { |f| f["number"] }
puts phone