Поиск (фильтрация) массива JSON с условием «ключ == значение» - PullRequest
0 голосов
/ 08 января 2019

У меня проблема с поиском определенных объектов в массиве в ruby.

Я сделал запрос к https://jsonplaceholder.typicode.com/todos, откуда я получаю результат JSON. Я пытаюсь преобразовать его в массив объектов и затем искать вхождения (я знаю, что могу сделать запрос с параметрами, и это решит мои проблемы, но у меня нет доступа к бэкэнду).

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

client = HTTPClient.new
method = 'GET'
url = URI.parse 'https://jsonplaceholder.typicode.com/todos'
res = client.request method, url
dd = JSON.parse(res.body)
puts dd.select { |word| word.completed == false }
puts dd.include?('temporibus atque distinctio omnis eius impedit tempore molestias pariatur')

Фактические результаты :

нет результатов для select и false, возвращенных из include?

Ожидаемый результат :

select следует поставить на конечные объекты с completed равным false;

и include? должны возвращать true, если значение, указанное в качестве параметра, присутствует в массиве

1 Ответ

0 голосов
/ 08 января 2019

Вот рабочий фрагмент кода:

require 'httpclient'
require 'json'

client = HTTPClient.new
method = 'GET'
url = URI.parse 'https://jsonplaceholder.typicode.com/todos'
res = client.request method, url
dd = JSON.parse(res.body)

# Use word['completed'] instead of word.completed here:
puts dd.select { |word| !word['completed'] }

# Use 'any?' array (Enumerable) method to check
# if any member of the array satisfies given condition:
puts dd.any? { |word| word['title'] == 'temporibus atque distinctio omnis eius impedit tempore molestias pariatur' }

Документацию для #any? можно найти здесь: https://apidock.com/ruby/Enumerable/any%3F

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...