无法遍历JSON数据求助:console.log(obj.id)无输出原因排查
为什么console.log(obj.id)没有控制台输出?
别着急,我帮你分析下问题出在哪:
你返回的JSON数据结构里,真正包含两个记录的数组是在**records属性**里,而你现在的代码直接遍历了整个返回的data对象(也就是matchTeamAStatsJSON)。这个对象本身不是数组,没有length属性,所以循环条件i < matchTeamAStatsJSON.length其实是i < undefined,循环根本没执行,自然不会输出任何内容。
修正后的代码
把循环的对象改成matchTeamAStatsJSON.records就可以了:
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); // 这里改成遍历records数组 for(var i = 0; i < matchTeamAStatsJSON.records.length; i++) { var obj = matchTeamAStatsJSON.records[i]; console.log(obj.id); } } })
额外调试小技巧
以后遇到这种循环没执行的情况,可以先在循环前打印一下console.log(matchTeamAStatsJSON.length),你会发现它输出的是undefined,这样就能快速意识到自己遍历的对象不对啦。
内容的提问来源于stack exchange,提问作者user1951962
相关产品推荐
相关产品推荐

