无法循环访问JSON数据

时间:2018-03-23 15:53:36

标签: javascript json ajax

对于JSON,我是一个真正的菜鸟。以下任何帮助都很棒。

的console.log(obj.id);在下面的代码中没有在控制台中返回任何内容 - 我需要了解原因?我希望它在控制台中根据JSON数据进行两次记录。

JS:

var matchTeamAStatsJSON

$.ajax({ 
  type: 'GET', 
  url: 'http://www.website.com/apipathblahblahblah',
  data: { get_param: 'value' }, 
  dataType: 'json',        
  success: function (data) {
    matchTeamAStatsJSON = data;
    console.log(matchTeamAStatsJSON);
    for(var i = 0; i < matchTeamAStatsJSON.length; i++) {
      var obj = matchTeamAStatsJSON[i];
      console.log(obj.id);
    }
  }
})

JSON:

{
"records": [
    {
        "id": "recGWUWqwjUNLpekA",
        "fields": {
            "playerSprints": 12,
            "playerDistanceCovered_km": 6.23
        },
        "createdTime": "2018-03-22T18:16:56.000Z"
    },
    {
        "id": "recx5pMFpxnRwR4La",
        "fields": {
            "playerSprints": 12,
            "playerDistanceCovered_km": 6.23
        },
        "createdTime": "2018-03-19T11:35:11.000Z"
    }
]
}

2 个答案:

答案 0 :(得分:3)

您可以使用Array.prototype.forEach()并执行:

&#13;
&#13;
const data = {"records": [{"id": "recGWUWqwjUNLpekA","fields": {"playerSprints": 12,"playerDistanceCovered_km": 6.23},"createdTime": "2018-03-22T18:16:56.000Z"},{"id": "recx5pMFpxnRwR4La","fields": {"playerSprints": 12,"playerDistanceCovered_km": 6.23},"createdTime": "2018-03-19T11:35:11.000Z"}]};

data.records.forEach(obj => console.log(obj.id));
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

如果您在下面发布的JSON示例是来自GET请求的响应,则数据等于&#34;记录&#34;哪个没有&#34; id&#34;属性。但是,它包含的数组的每个实例都有。

你需要首先进入该数组,然后获得&#34; id&#34;每个元素的属性:%MacroOne; 应该让你想要。

希望这有帮助!