如何多次从json响应中获取相同的密钥?

时间:2019-05-04 10:16:47

标签: json ruby httparty

我需要从以下响应中获取所有“客户”键

[     {         “客户”:“加里·南”,         “ type”:“经销商”,         “地址”:[             {                 “车辆”:“汽车”,                 “类型”:“ SUV”             }         ]     },     {         “客户”:“威廉·图斯克”,         “ type”:“经销商”,         “地址”:[             {                “车辆”:“汽车”,                 “类型”:“ SUV”             }         ]     },     {         “ customer”:“ Lynn Baker”,         “ type”:“经销商”,         “地址”:[             {                 “车辆”:“ VANS”,                 “ type”:“业务”             }         ]     }    ]

我尝试了以下代码,但它仅获得第一个“名称”键值。

result = JSON.parse(response.body)
result.each do |item|
assert_equal @customerNames, item['customer']

2 个答案:

答案 0 :(得分:1)

您忘记了end的{​​{1}}语句,您基本上需要遍历所有项,然后比较名称列表。

do

输出:

data = JSON.parse(response.body)
names = []
data.each do |item|
  names.push(item['name'])
end
puts names

答案 1 :(得分:1)

我会做这样的事情:

data = JSON.parse(response.body)
names = data.map { |elem| elem['name'] } 
#=> ["Gary South", "William TUSK", "Lynn Baker"]

assert_equal @names, names