Javascript 如何从API访问数据?
我正在建立一个供我个人使用的小脚本,通过测试Nike API来了解任何产品的信息,从而了解Ajax和jQuery 我做了一个小循环来获得关于实际API的信息,但是当我想要传递秒对象时,我被卡住了Javascript 如何从API访问数据?,javascript,jquery,ajax,api,Javascript,Jquery,Ajax,Api,我正在建立一个供我个人使用的小脚本,通过测试Nike API来了解任何产品的信息,从而了解Ajax和jQuery 我做了一个小循环来获得关于实际API的信息,但是当我想要传递秒对象时,我被卡住了 function getSnkrs() { var test = $('.test'); $.ajax({ type: "GET", url: "https://api.nike.com/product_feed/threads/v2/?filter=ma
function getSnkrs() {
var test = $('.test');
$.ajax({
type: "GET",
url: "https://api.nike.com/product_feed/threads/v2/?filter=marketplace%28FR%29&filter=language%28fr%29&filter=channelId%28010794e5-35fe-4e32-aaff-cd2c74f89d61%29&&filter=exclusiveAccess%28true%2Cfalse%29",
async: false,
success: function(data) {
for (i = 0; i < 10; i++) {
for (y = 0; y < 10; y++) {
//<br><img src="'+ data._embedded.objects[i].publishedContent[i].nodes[i].properties[i].portraitURL[i].url +'"style="width: 20%; height=auto;><br>
test.append('<br><a>'+ data.objects[i].publishedContent[y].marketplace +'</a><br>');
}
}
}
});
我看到publisherContent不是数组?(如果我错了,请纠正我),它是一个json对象。尝试删除“y”循环:
for(var i=0;i
test.append('
'+data.objects[i].publishedContent.marketplace+'
');
}
这里有一个答案,没有jQuery,只有简单的JS:
const-marketplacesEl=document.getElementById(“市场”);
取回(
"https://api.nike.com/product_feed/threads/v2/?filter=marketplace%28FR%29&filter=language%28fr%29&filter=channelId%28010794e5-35fe-4e32-aaff-cd2c74f89d61%29&&filter=exclusiveAccess%28真实%2Cfalse%29“
)
.then(response=>response.json())
.然后({objects})=>
对象。forEach(
({publishedContent:{marketplace}})=>
(marketplacesEl.appendChild)(
document.createElement(“li”)
).innerHTML=市场)
)
);代码>
发布的内容
不是数组。尝试test.append('
'+data.objects[i].publishedContent.marketplace+'
')代码>。我想您也可以删除内部循环。此外,我不建议使用async:false
删除循环并尝试data.objects.forEach(obj=>test.append(“
”+obj.publishedContent.marketplace+”
'))
取而代之。根据问题,我们的样本json没有发布内容作为数组,因此它会给出错误。哇,非常感谢@不能将i=0
更改为var i=0
?您还可以提到,使用for(var i=0;i
并解释原因。感谢您的更正。我只是从问题中复制并粘贴了代码,而没有注意语法,然后删除了未使用的部分。就是这样。var i可能是在代码中的某个地方声明的…@FajarAM您完全正确!但是skez显然是个初学者,他需要一些帮助我不想写一个答案,如果已经有一个好的。
{
"pages": {
"prev": "",
"next": "/product_feed/threads/v2?filter=marketplace%28FR%29&filter=language%28fr%29&filter=channelId%28010794e5-35fe-4e32-aaff-cd2c74f89d61%29&filter=exclusiveAccess%28true%2Cfalse%29&anchor=50",
"totalPages": 26,
"totalResources": 1258
},
"objects": [
{
"id": "a6ecf9f2-8f73-4d1a-b761-5e0772153fdb",
"channelId": "010794e5-35fe-4e32-aaff-cd2c74f89d61",
"channelName": "SNKRS Web",
"marketplace": "FR",
"language": "fr",
"lastFetchTime": "2019-08-13T15:13:15.879Z",
"publishedContent": {
"preview": false,
"marketplace": "FR",
for (var i = 0; i < data.objects.length; i++) {
//<br><img src="'+ data._embedded.objects[i].publishedContent[i].nodes[i].properties[i].portraitURL[i].url +'"style="width: 20%; height=auto;><br>
test.append('<br><a>'+ data.objects[i].publishedContent.marketplace +'</a><br>');
}