Как ссылаться на конкретный элемент в наборе данных JSON? - PullRequest
0 голосов
/ 16 ноября 2018

Я использую NewsApi, чтобы перенести некоторые данные в мою модель новостей. Запрос RestClient.get(https://newsapi.org/v2/top-headlines?sources=financial-times&apiKey=XXXXX) { |response| } и возвращает набор данных, который я анализирую в json:

data = JSON.parse(response.body)

=>

{
"status": "ok",
"totalResults": 10,
-"articles": [
-{
-"source": {
"id": ".....",
"name": "....."
},
"author": null,
"title": "......",
"description": "......",
"url": "......",
"urlToImage": "....."
},
-{
-"source": {
"id": "financial-times",
"name": "Financial Times"
},
"author": null,
"title": "...",
"description": "...",
"url": "https://www.ft.com/content/a6a3cb08-e887-11e8-8a85-04b8afea6ea3",
"urlToImage":"..."
}
]
}

Мне интересно, как получить значение элемента "title" в каждой статье. @news.title = data["articles"][1]["title"] и т. Д. Какой самый быстрый способ конкретно указать элемент "title" в любой из статей?

1 Ответ

0 голосов
/ 16 ноября 2018

Я не на 100% точно понимаю, что вы хотите здесь, но если вы просто хотите, чтобы значение заголовка для каждой статьи в массиве, вы могли бы сделать что-то вроде этого:

data[:articles].map { |a| a[:title] }

Который вывел бы массив заголовков => ["......", "..."]

Если вы просто хотите сослаться на заголовок конкретной статьи в массиве статей, то вы уже получили его - data[:articles][X][:title], где X - индекс конкретной статьи.

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