2017-05-28 71 views
0

我想通過foreach訪問每個對象......並且我不知道具體是因爲在那個json數組中有一個鍵一定數量的記錄,然後是具有其他值的另一個鍵等等。如果您注意到,還有一種顏色。如何在json中顯示顏色?我需要在我的頁面上。如何通過具有鍵和數組的json迭代到值

這是我的JSON:

{ 
    "7": [{ 
     "idType": 0, 
     "nrReq": 41, 
     "dataD": "2017-05-14", 
     "typeC": "CO", 
     "startDate": "2017-05-16", 
     "endDate": "2017-05-17", 
     "dataA": "2017-05-14", 
     "color": "000080" 
    }, { 
     "idType": 0, 
     "nrReq": 42, 
     "dataD": "2017-05-14", 
     "typeC": "CM", 
     "startDate": "2017-05-23", 
     "endDate": "2017-05-24", 
     "dataA": "2017-05-18", 
     "color": "000080" 
    }, 

    "8": [{ 
     "idType": 0, 
     "nrC": 53, 
     "dataD": "2017-05-20", 
     "typeC": "CO", 
     "startDate": "2017-05-23", 
     "endDate": "2017-05-23", 
     "dataA": "2017-05-20", 
     "color": "ffd9b3" 
    }], 

    "25": [{ 
     "idType": 0, 
     "nrC": 51, 
     "dataD": "2017-05-23", 
     "typeC": "CP", 
     "startDate": "2017-05-29", 
     "endDate": "2017-05-30", 
     "dataA": "2017-05-20", 
     "color": "ff6600" 
    }] 
    } 

應該如何看待?我認爲這應該是2 foreach ...

+0

是需要多個環路...一個主對象的每個屬性,另一個爲每個屬性 – charlietfl

回答

0

你可以使用一個,因爲數據是一個你知道的結構。

注意:我可能認爲在您的JSON中只能有一個「每個id」對象的語法錯誤。 :)

如果你不知道數組中只有一個項目,你需要迭代每個數組(所以2個循環)。

var data = { 
 
    "7": [{ 
 
    "idType": 0, 
 
    "nrReq": 41, 
 
    "dataD": "2017-05-14", 
 
    "typeC": "CO", 
 
    "startDate": "2017-05-16", 
 
    "endDate": "2017-05-17", 
 
    "dataA": "2017-05-14", 
 
    "color": "000080" 
 
    }], 
 
    "8": [{ 
 
    "idType": 0, 
 
    "nrC": 53, 
 
    "dataD": "2017-05-20", 
 
    "typeC": "CO", 
 
    "startDate": "2017-05-23", 
 
    "endDate": "2017-05-23", 
 
    "dataA": "2017-05-20", 
 
    "color": "ffd9b3" 
 
    }], 
 

 
    "25": [{ 
 
    "idType": 0, 
 
    "nrC": 51, 
 
    "dataD": "2017-05-23", 
 
    "typeC": "CP", 
 
    "startDate": "2017-05-29", 
 
    "endDate": "2017-05-30", 
 
    "dataA": "2017-05-20", 
 
    "color": "ff6600" 
 
    }] 
 
}; 
 

 
for (var id in data) { 
 
    if (data.hasOwnProperty(id)) { 
 
    console.log(data[id][0].color); // etc 
 
    } 
 
}

+1

什麼有關'數據[「7」]'數組第二元件的陣列?必須假定數組長度不明 – charlietfl

+0

那麼,JSON是無效的,所以很容易假設有一個缺失的屬性(id-ish)。 :)還編輯了答案,以反映這一點。 –

+0

在這裏,我修復了你的json併爲你編寫了一段代碼來閱讀這些道具並獲取顏色值。這些數字道具基本上是我們使用的json數據的無效鍵值const props = Object.keys(json);讓JavaScript動態地包含這些屬性。然後我們需要一個獨立的變量(這是我)創建第二個路由到第二個嵌套屬性。 – Chris