如何在API响应中访问JSON?

时间:2013-09-17 16:04:15

标签: ruby arrays json api

我正在进行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。

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