[英]JSON loop a multidimensional array to with node.js
閱讀了不同的方法后,請允許我嘗試解釋。
我正在嘗試從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);
});
然后,它記錄的內容與訪問https://api.twitch.tv/kraken/channels/twitch/follows?limit=3的位置相同
或更好地可視化為
現在,我要選擇以下->用戶->名稱對象。 更重要的是,在響應中循環每個用戶->名稱。
我以為我需要將字符串轉換為對象,所以我嘗試了
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);
}
});
它返回
TypeError: Cannot read property '0' of undefined
出於測試目的,我也擺脫了循環,只用1來返回一點信息。 嘗試過多次重新安排呼叫的實例后,我總是會收到錯誤消息或“未定義”消息。
似乎沒有任何效果,我什至正在以正確的方式進行操作?
循環遍歷json.followers.length
而不是json.length
- json
是一個對象,並且對象沒有長度:
for (var i=0; i<json.follows.length; i++) {
由於json是此處的對象,因此我們應該使用for-in,盡管沒有length屬性。 但是這里json.follows是一個數組。 因此,我們應該使用for循環。
var len = json.follows.length;
for (var i=0; i< len; i++) {
console.log(json.follows[i].user.name);
}
假設您執行var obj = JSON.parse(json);
for (var j = 0; j < obj.follows.length; j++) {
var thisName = jsonObj.follows[j].user.name;
console.log(thisName);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.