Как получить один и тот же ключ несколько раз из ответа JSON? - PullRequest
0 голосов
/ 04 мая 2019

Мне нужно получить все «клиентские» ключи из следующего ответа

[ { «Заказчик»: «Гари Юг», "тип": "Дилер", "адреса": [ { "транспортные средства": "АВТОМОБИЛЬ", "тип": "внедорожник" } ] }, { «Заказчик»: «Уильям Туск», "type": "Reseller", "адреса": [ { "транспортные средства": "АВТОМОБИЛЬ", "тип": "внедорожник" } ] }, { «Заказчик»: «Линн Бейкер», "тип": "Дилер", "адреса": [ { "транспортные средства": "VANS", "тип": "БИЗНЕС" } ] } ]

Я попробовал следующий код, но он получает только первое значение ключа 'name'.

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

Ответы [ 2 ]

1 голос
/ 04 мая 2019

Я бы сделал что-то вроде этого:

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

assert_equal @names, names
1 голос
/ 04 мая 2019

Вы забыли end оператор do, вам, в основном, нужно пройтись по всем элементам и затем сравнить список имен.

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

Выход:

Gary South
William TUSK
Lynn Baker
...