javascript - 如何从 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=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>');

            }
        }
    }
});

}

在控制台上我有这个:

jquery-1.9.1.js:7985 Uncaught TypeError: Cannot read property 'marketplace' of undefined
at Object.success (script.js:36)
at fire (jquery-1.9.1.js:1037)
at Object.fireWith [as resolveWith] (jquery-1.9.1.js:1148)
at done (jquery-1.9.1.js:8074)
at callback (jquery-1.9.1.js:8598)
at Object.send (jquery-1.9.1.js:8604)
at Function.ajax (jquery-1.9.1.js:7978)
at getSnkrs (script.js:26)
at HTMLDocument. (script.js:3)
at fire (jquery-1.9.1.js:1037)

如果有人可以帮助我,我想要“市场”元素,谢谢! :

{
    "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",

最佳答案

我看到publisherContent不是一个数组? (如果我错了,请纠正我),它是一个 json 对象。尝试删除“y”循环:

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

关于javascript - 如何从 API 访问数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57482326/

相关文章:

javascript - 在表格上打印时图像消失

javascript - 检测浏览器是否支持 contentEditable?

javascript - 将此 JSON 重写为 jQuery data() 的更好方法是什么?

php - 简单的 jQuery - php 通信

php - 使用 AJAX 从 MySQL 数据库检索数值数据

javascript - 滚动动画流畅

javascript - 哪个 nodejs 记录器具有运行时日志级别更改、纯文本/JSON 支持和简单的 API

javascript - 禁用 ng repeat 中的按钮

javascript - 单击按钮时,使用 JQuery 选择同级元素

javascript - 从 ngResource 查询中的 PUT 请求中删除正文