Javascript 如何从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

我正在建立一个供我个人使用的小脚本,通过测试Nike API来了解任何产品的信息,从而了解Ajax和jQuery

我做了一个小循环来获得关于实际API的信息,但是当我想要传递秒对象时,我被卡住了

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>');
      }