首页 > 解决方案 > API 使用 JavaScript 从数据中访问某些值

问题描述

我有以下 API 数据:

[
    {
        "symbol": "AAPL",
        "name": "Apple Inc.",
        "price": 144.98,
        "changesPercentage": -1.22,
        "change": -1.79,
        "dayLow": 142.54,
        "dayHigh": 146.96,
        "yearHigh": 150,
        "yearLow": 93.7125,
        "marketCap": 2419368132608,
        "priceAvg50": 138.45343,
        "priceAvg200": 131.05212,
        "volume": 113982837,
        "avgVolume": 85057328,
        "exchange": "NASDAQ",
        "open": 144.81,
        "previousClose": 146.77,
        "eps": 4.449,
        "pe": 32.587097,
        "earningsAnnouncement": "2021-07-27T16:30:00.000+0000",
        "sharesOutstanding": 16687599204,
        "timestamp": 1627504655
    }
]

这是我的带有假 API 代码的代码:

var $stocks = $('#stocks');
    $.ajax({
        type: 'GET',
        url: 'https://financialmodelingprep.com/api/v3/quote/AAPL?apikey=c0dabd2d8a382584d2144bdefde830f2',
        success: function (percent) {
            $.each(percent, function (i, item) {
                $stocks.append(percent.changesPercentage);
            })
        }
    });

我想做的就是获取 changesPercentage 并使用 HTML 和 CSS 将其显示在我的网页上。我将拥有来自不同公司的各种数据,因此一个通用的解决方案将非常有帮助。

标签: javascripthtmlcssajaxapi

解决方案


您正在尝试从 获取changesPercentagepercent这是整个响应数组。所以那个属性是undefined.

相反,您似乎想从数组中的每个元素中获取该值。为此,您将使用item回调函数的参数$.each

$stocks.append(item.changesPercentage);

或者,您也可以将该i参数用作原始数组的索引器:

$stocks.append(percent[i].changesPercentage);

顺便说一句,这似乎是由于使用了让你自己感到困惑的糟糕的变量名。 percent是对象数组的误导性名称。likeresults会更好,或者任何名词的复数形式实际上描述了这些 API 结果是什么。

名称在代码中很重要。他们携带有关该事物是什么以及如何使用它的信息。


推荐阅读