首页 > 解决方案 > 通过 JSON 数组时获得“未定义”结果

问题描述

我正在发出一个 AJAX 请求,该请求返回一个 JSON 文件,我使用 JSON.parse 将其转换为一个数组,但是,当我尝试通过一些对象时,我得到“未定义”而不是来自JSON 文件。

    function loadData() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            var armoryNews = JSON.parse(this.responseText);
            console.log(armoryNews["armorynews"][0]);
        }
    };
    xhttp.open("GET", "https://api.torn.com/faction/8819?selections=armorynews&key=XXXXXXXXXX", true);
    xhttp.send();
}

loadData();

这是我请求的 JSON 文件:https ://pastebin.com/HGsxFcTM

我已经尝试过获取此文件的其他方法,例如 jsonp,但由于 Access-Control-Allow-Origin,这些方法不起作用。

先感谢您

标签: javascriptjsonajaxapi

解决方案


尝试这个 :

var armoryNews = {
   "armorynews": {
      "250852079": {
         "timestamp": 1531570578,
         "news": "<a href = \"http://www.torn.com/profiles.php?XID=2143655\">3dubbeltjes<\/a> used one of the faction's Xanax items."
      },
      "250848543": {
         "timestamp": 1531567903,
         "news": "<a href = \"http://www.torn.com/profiles.php?XID=2072880\">Akine<\/a> used one of the faction's Xanax items."
      },
      "250847811": {
         "timestamp": 1531567248,
         "news": "<a href = \"http://www.torn.com/profiles.php?XID=2147631\">Silnt<\/a> used one of the faction's Bottle of Beer items."
      }
   }
};

var armorynewsKeys = Object.keys(armoryNews["armorynews"]);

armorynewsKeys.map(item => {
  console.log(armoryNews["armorynews"][item]);
});


推荐阅读