簡體   English   中英

JSON使用node.js循環多維數組

[英]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的位置相同

或更好地可視化為

json結構

現在,我要選擇以下->用戶->名稱對象。 更重要的是,在響應中循環每個用戶->名稱。

我以為我需要將字符串轉換為對象,所以我嘗試了

    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM