我正在通过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
。
答案 0 :(得分:0)
如果您知道该数组只包含一个元素,则无需使用map
,这会导致您的结果成为数组。您可以直接引用它,如下所示:
id = response["sample"][0]["id"]
另外,您还可以索引地图的结果,如:
id = response["sample"].map {|s| s["id"]}[0]
答案 1 :(得分: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