0

我正在进行一个返回以下响应的 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。

4

3 回答 3

2

它是数组内的哈希。这将返回第一个数字:

@phone = response["phones"][0]["number"]

或者,如果您希望将所有数字作为数组:

@numbers = response["phones"].map { |phones| phones["number"] }

@phone = @numbers.first
于 2013-09-17T16:08:14.967 回答
0

对于select哈希:

phone = response["phones"].select { |f| f["number"] }
puts phone
于 2013-09-17T17:04:38.213 回答
0

尝试这个:

@phone = response["phones"].map { |s| s["number"] }
puts @phone # puts the instance var @phone, not unassigned local var phone
于 2013-09-17T16:07:15.420 回答