无法在纽约时报 API 中访问图像 URL



我正在尝试访问results.media.media-metadata.url以动态放置URL src属性并显示新闻的图像,但我只能访问结果。媒体,之后的任何内容都会返回未定义或抛出错误。

我试过:

latestNews[i]['media']['media-metadata']['url']
latestNews[i][media][media-metadata][url]
latestNews[i]media.[media-metadata].url
latestNews[i]media.media-metadata.url

来自API 的 de 响应之后的代码:

JSON 网址:https://api.nytimes.com/svc/mostpopular/v2/shared/1/facebook.json?api-key=Dsak6ljecPclOkCgEeAdB1dmdr1bEqAC

let output = "";
let latestNews = newsdata.results; //newsdata is the response
for (var i in latestNews) {
console.log(latestNews[i]['media']) //----> this works and outputs the object but i cant go any further.
output += `
<div class="col l4 m6 s12">
<div class="card medium hoverable">
<div class="card-image">
<img src = "#" class = "responsive-img" //--> the src is where i want to put the url
alt = "${latestNews[i].title}" >
</div>
<div class="card-content">
<span class="card-title activator"><i class="material-icons right">more_vert</i></span>
<h6 class="truncate">Title: <a href="${latestNews[i].url}" title="${latestNews[i].title}">${latestNews[i].title}</a></h6>
<p><b>Author</b>: ${latestNews[i].byline} </p>
<p><b>News source</b>: ${latestNews[i].source} </p>
<p><b>Published Date</b>: ${latestNews[i].published_date} </p>
</div>
<div class="card-reveal">
<span class="card-title"><i class="material-icons right">close</i></span>
< p> <b> Description </b>: ${latestNews[i].abstract}</>
</div>
<div class="card-action">
<a href="${latestNews[i].url}" target="_blank" class="btn">Read More</a>
</div>
</div>
</div>
`;
  • media是数组
  • media-metadata也是数组

它应该像results[0].media[0]["media-metadata"][0].url

媒体对象和媒体元数据对象是一个数组。所以你需要这样做:

latestNews[i]['media'][0]['media-metadata'][0].url //or which ever size image you want, so pick from the list. 

伙计们非常感谢你们,我最终得到了我兄弟的帮助,我们一起想通了,谢谢,这是获得更大图像URL的解决方案:

latestNews[i].media[0]["media-metadata"][2].url 或 newsdata.results[i].media[0]["media-metadata"][2].url

这个社区很棒:D

最新更新