【问题标题】:Google Sheets: API returning undefined for json tagGoogle 表格:API 返回未定义的 json 标记
【发布时间】:2019-09-03 12:04:59
【问题描述】:

一段时间以来,我一直在尝试在表格中使用在线 API (albion-online-data.com),创建了一个小函数来尝试获取特定标识符 sell_price_min,但该函数一直返回未定义。

我已经四处寻找很久了,但一直没能找出问题所在。抱歉,我一般是 API 和谷歌表格的新手。我使用了 Logger.log,它在 Json.parse 之后显示了正确的内容,但是在尝试使用时 返回 w.sell_price_min; 它总是返回 undefined。

代码如下:

/**
 * Retrieve the current price for a given city.
 *
 */
function CURRENTPRICE(name, location, quality) {
    name = encodeURI(name);
    location = encodeURI(location);
    quality = encodeURI(quality);
    var response = UrlFetchApp.fetch("http://www.albion-online-data.com/api/v2/stats/Prices/" + name + "?locations=" + location + "&qualities=" + quality);
    var w = JSON.parse(response.getContentText());
    return w.sell_price_min;
}

API 是: https://www.albion-online-data.com/api/v2/stats/prices/T4_BAG,T5_BAG?locations=Caerleon,Bridgewatch&qualities=2

返回以下内容:(为了便于阅读,此处重新格式化了缩进和换行符)

[
  {
    "item_id": "T4_BAG",
    "city": "Bridgewatch",
    "quality": 2,
    "sell_price_min": 4000,
    "sell_price_min_date": "2019-09-02T22:20:00",
    "sell_price_max": 4444,
    "sell_price_max_date": "2019-09-02T22:20:00",
    "buy_price_min": 0,
    "buy_price_min_date": "0001-01-01T00:00:00",
    "buy_price_max": 0,
    "buy_price_max_date": "0001-01-01T00:00:00"
  },
  {
    "item_id": "T4_BAG",
    "city": "Caerleon",
    "quality": 2,
    "sell_price_min": 5571,
    "sell_price_min_date": "2019-09-03T11:05:00",
    "sell_price_max": 5571,
    "sell_price_max_date": "2019-09-03T11:05:00",
    "buy_price_min": 2375,
    "buy_price_min_date": "2019-09-03T08:41:00",
    "buy_price_max": 4020,
    "buy_price_max_date": "2019-09-03T08:41:00"
  },
  {
    "item_id": "T5_BAG",
    "city": "Bridgewatch",
    "quality": 0,
    "sell_price_min": 20000,
    "sell_price_min_date": "2019-09-01T14:00:00",
    "sell_price_max": 22100,
    "sell_price_max_date": "2019-09-01T14:00:00",
    "buy_price_min": 0,
    "buy_price_min_date": "0001-01-01T00:00:00",
    "buy_price_max": 0,
    "buy_price_max_date": "0001-01-01T00:00:00"
  },
  {
    "item_id": "T5_BAG",
    "city": "Caerleon",
    "quality": 2,
    "sell_price_min": 23897,
    "sell_price_min_date": "2019-09-03T11:03:00",
    "sell_price_max": 26376,
    "sell_price_max_date": "2019-09-03T11:03:00",
    "buy_price_min": 15000,
    "buy_price_min_date": "2019-09-02T22:21:00",
    "buy_price_max": 22550,
    "buy_price_max_date": "2019-09-02T22:21:00"
  }
]

结果应该是:4000?

抱歉给您添麻烦了……我已经被难住了好几个小时了.-.

【问题讨论】:

    标签: javascript json api google-sheets


    【解决方案1】:

    您正在访问一个 JSON 数组。所以应该是

    for(var i = 0; i < w.length; i++) {
        var obj = w[i];
    
        console.log(obj.sell_price_min);
    } 
    

    如果要获取数组的第一个值放

    return w[0].sell_price_min
    

    【讨论】:

    • 天哪,它有效。我爱你,伙计。这是一个愚蠢的错误,但我被困在上面几个小时。感谢您的回复!
    猜你喜欢
    • 2021-12-15
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    相关资源
    最近更新 更多