【发布时间】:2015-06-24 05:07:33
【问题描述】:
这是对我昨天提出的一个问题的补充,但我觉得它需要一个新问题。
我正在接受 JSON 响应,并希望在每次迭代中提取所有值并将它们放入数组中
@response = { "0"=>{"forename_1"=>"John", "surname_1"=>"Smith", forename_2"=>"Josephine", "surname_2"=>"Bradley", "middle_1"=>""},
"1"=>{"forename_1"=>"Chris", "surname_1"=>"Jenkins", forename_2"=>"Christine", "surname_2"=>"Sugar", "middle_1"=>""},
"2"=>{"forename_1"=>"Billy", "surname_1"=>"Bob", forename_2"=>"Brenda", "surname_2"=>"Goodyear", "middle_1"=>""},
"Status" => 100
}
目前这个方法把我想要的特定值放入我想要的数组中。
col = @response.values.grep(Hash).map { |h| "#{h['forename_1']} #{h['surname_1']} #{h['forename_2']} #{h['surname_2']} #{h['middle_1']}" }
有没有办法说抓取所有值并将它们放入一个数组中(我有一个返回超过 25 个键/值对的响应)。
目前,如果 middle_1 没有值,则将 " " 放入数组中,理想情况下我想删除这些。
理想情况下,我希望我新形成的数组看起来像
["John Smith Josephine Bradley", "Chris Jenkins Christine Sugar", "Billy Bob Brenda Goodyear"]
即使没有提供middle_1,数组中也没有双空格。我想学习如何解决这个问题。
【问题讨论】:
-
您能否提供输入 JSON 的示例并说明您期望的输出?