Javascript JSON将多维数组循环到node.js
读完不同的方法后,请耐心听我解释 我试图从twitch api检索数据,并将user.name结果循环到可能位于对象内部的数组。我使用的是nodejs,所以它必须是javascript 到目前为止,当我运行下面的代码时,我得到了一个很好的json响应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
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);这就解决了问题。非常感谢:)