如何引用json数据集中的特定项目?

时间:2018-11-15 22:33:29

标签: ruby-on-rails arrays json ruby-on-rails-5

我正在使用NewsApi将一些数据提取到News模型中。该请求为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 :(得分:1)

我不是100%清楚地知道您想要什么,但是如果您只想要数组中每篇文章的标题值,您可以执行以下操作:

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

将输出标题为=> ["......", "..."]

的数组

如果您只想在articles数组中引用特定文章的标题,那么您已经拥有了它-data[:articles][X][:title],其中X是特定文章的索引。