0

我从 Web 服务调用接收 JSON,如下所示:

{"sample"=>[{"id"=>1, "name"=>"demo", "startDate"=>"2013-08-12T00:00:00", "endDate"=>"2014-05-28T00:00:00"}]}

我想进入这个并获取 id,所以我这样做了:

response = JSON.parse(url.body)
id = response["sample"].map { |s| s["id"] }

现在puts id.inspect返回:

[22514202]

我怎样才能只返回ID?我不想像id[0].map.

4

2 回答 2

0

如果您知道该数组仅包含一个元素,则无需使用map,这就是导致您的结果成为数组的原因。你可以直接引用它,如下:

id = response["sample"][0]["id"]

顺便说一句,您还可以索引地图的结果,如下所示:

id = response["sample"].map {|s| s["id"]}[0]
于 2013-10-29T19:37:10.060 回答
0

这对我有用

[4] pry(#<Sms>)> my_hash_static
    => :body=>
      [{:mp=>
         {:msg=>
           "string1",
          :no=>"no1"}}]


    [5] pry(#<Sms>)> my_hash_static[:body]*","

    => "{:mp=>{:msg=>"string2", :no=>"no2"}}"

如果您不使用哈希,这也可以

array = ["x","y"]
result = array.shift.strip
于 2014-04-02T21:16:49.910 回答