Javascript JSON将多维数组循环到node.js

Javascript JSON将多维数组循环到node.js,javascript,arrays,json,node.js,object,Javascript,Arrays,Json,Node.js,Object,读完不同的方法后,请耐心听我解释 我试图从twitch api检索数据,并将user.name结果循环到可能位于对象内部的数组。我使用的是nodejs,所以它必须是javascript 到目前为止,当我运行下面的代码时,我得到了一个很好的json响应 var request = require('request'); request({url: 'https://api.twitch.tv/kraken/channels/twitch/follows?limit=3'}, functi

读完不同的方法后,请耐心听我解释

我试图从twitch api检索数据,并将user.name结果循环到可能位于对象内部的数组。我使用的是nodejs,所以它必须是javascript

到目前为止,当我运行下面的代码时,我得到了一个很好的json响应

var request = require('request');

    request({url: 'https://api.twitch.tv/kraken/channels/twitch/follows?limit=3'}, function(err, res, json) {
        if (err) {
            throw err;
        }

        console.log(json);

    });
然后,此日志与要访问的位置相同

或者更好地形象化为

现在我想选择下面的->用户->名称对象。更重要的是,在响应中循环每个user->name

我想我需要将字符串转换成一个对象,所以我尝试了

    var obj = JSON.parse(json);
但是它只返回树中的第一个{3}对象。所以我继续努力

var request = require('request');

    request({url: 'https://api.twitch.tv/kraken/channels/twitch/follows?limit=3'}, function(err, res, json) {
        if (err) {
            throw err;
        }

        for (var i=0; i<json.length; i++) {

        var obj = JSON.parse(json.follows[i].user.name);
        console.log(obj);

        }

    });
出于测试目的,我还去掉了循环,只需返回一点信息。在尝试了多次重新安排呼叫后,我总是返回一个错误或“未定义”


似乎什么都不管用,我甚至都在用正确的方法来处理这个问题?

循环
json.followers.length
-不是
json.length
-
json
是一个对象,而对象没有长度:

for (var i=0; i<json.follows.length; i++) {

for(var i=0;i循环
json.followers.length
-不是
json.length
-
json
是一个对象,对象没有长度:

for (var i=0; i<json.follows.length; i++) {

for(var i=0;i因为json在这里是一个对象,所以我们应该在中使用for,尽管没有长度属性。但是这里json.follows是一个数组。所以我们应该使用for循环

var len = json.follows.length;
for (var i=0; i< len; i++) {
    console.log(json.follows[i].user.name);
}
var len=json.follows.length;
对于(变量i=0;i
因为json在这里是一个对象,所以我们应该在中使用for,尽管没有长度属性。但是这里json.follows是一个数组。所以我们应该使用for循环

var len = json.follows.length;
for (var i=0; i< len; i++) {
    console.log(json.follows[i].user.name);
}
var len=json.follows.length;
对于(变量i=0;i
假设您执行
var obj=JSON.parse(JSON);

for(var j=0;j
假设您执行
var obj=JSON.parse(JSON);

for(var j=0;j
如此简单却如此有效。我似乎得到了TypeError:尝试此操作时无法读取未定义的属性“length”。完整编辑:用于(var i=0;感谢您的帮助,我将下面的问题标记为已接受的答案。在过程中不确定,但额外的一行帮助了我,尽管它几乎是一样的。希望这是正确的,我将您的问题向上投票。如此简单但如此有效。我似乎得到了TypeError:尝试此操作时无法读取未定义的属性“length”。完全编辑:用于(var i=0;感谢您的帮助,我将下面的问题标记为已接受的答案。在过程中不确定,但额外的一行帮助了我,尽管它几乎是一样的。希望这没问题,我将您的问题向上投票。
follows
是一个数组-对数组使用常规的
for
循环。是的……对于follows,我们可以使用常规的f或者循环。但是对于json,这是一个我们应该用于..in.的对象。我将更新我的答案。我得到TypeError:无法读取未定义的属性'length',与上面的答案相同。不确定这是如何发生的?但我测试了,它工作正常。你能做一个console.log(json)并检查输出是什么,它是否包含“follows”是否?是的,我需要包含obj=JSON.parse(JSON);这就解决了这个问题。非常感谢:)
follows
是一个数组-对数组使用常规的
循环。是的…对于follows,我们可以使用常规的for循环。但是对于json,这是一个我们应该使用的对象。在中。我将更新我的答案。我得到TypeError:无法读取未定义的属性'length',与上面的答案相同。不确定这是如何发生的?但我测试并工作正常。你能做一个console.log(json)并检查输出是什么,它是否包含“follows”吗?是的,我需要包含obj=json.parse(json);这就解决了问题。非常感谢:)