我需要从以下响应中获取所有“客户”键
[ { “客户”:“加里·南”, “ type”:“经销商”, “地址”:[ { “车辆”:“汽车”, “类型”:“ SUV” } ] }, { “客户”:“威廉·图斯克”, “ type”:“经销商”, “地址”:[ { “车辆”:“汽车”, “类型”:“ SUV” } ] }, { “ customer”:“ Lynn Baker”, “ type”:“经销商”, “地址”:[ { “车辆”:“ VANS”, “ type”:“业务” } ] } ]
我尝试了以下代码,但它仅获得第一个“名称”键值。
result = JSON.parse(response.body)
result.each do |item|
assert_equal @customerNames, item['customer']
答案 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