Короткий способ превратить данные массива JSON в строку в ruby - PullRequest
0 голосов
/ 21 марта 2020

Я получаю некоторые данные из API и использую apidata = JSON.parse(response) для анализа JSON. Это выглядит так:

> puts(apidata['values'])
{"a"=>{"value"=>"..."}, "b"=>"..."}
{"a"=>{"value"=>"..."}, "b"=>"..."}
{"a"=>{"value"=>"..."}, "b"=>"..."}
{"a"=>{"value"=>"..."}, "b"=>"..."}
[...]

Я хотел бы создать массив, который содержит только значения b во всех элементах, поэтому я могу .join() передать его в строку.

Это бы сработало:

array = Array.new
for item in apidata['values']
    array.push(item['b'])
end
string = array.join(',')

Но, похоже, много кода для довольно простой задачи. Есть ли более короткий способ сделать то же самое?

1 Ответ

1 голос
/ 21 марта 2020

Если вы хотите извлечь элементы из массива в другой массив, то вместо Array#map используется общая идиома Ruby вместо создания нового массива и самостоятельного копирования записей.

apidata['values'].map { |h| h['b'] }.join(',')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...