2016-03-18 177 views
0

我想從JavaScript中的數組中讀取數據,但我無法使其工作。這是JSON文件從至極我想讀的數據段,我想讀從不同陣列的age變量:在javascript中讀取數據從數組中讀取數據

{ 
    "failCount" : 1, 
    "skipCount" : 15, 
    "totalCount" : 156, 
    "childReports" : 
    [ 
     { 
      "result" : 
      { 
       duration : 0.97834, 
       empty : false, 
       suites : 
       [ 
        cases : 
        [ 
         { 
          "age" : 0, 
          "status" : Passed 
         } 
         { 
          "age" : 15, 
          "status" : Passed 
         } 
         { 
          "age" : 3, 
          "status" : failed 
         } 
        ] 
       ] 
      } 
     } 
    ] 
} 

我已經試過這樣:

for (var i = 0; i < jsonData.childReports.suites.cases.length; i++) 
{ 
    var age = jsonData.childReports.suites.cases[i]; 
} 

但不起作用。什麼是最好的方法來做到這一點?

在此先感謝, Matthijs。

+1

在控制檯中的任何錯誤? – Rayon

+0

是的,我忘了在問題中加上。這是錯誤:未捕獲的SyntaxError:意外的令牌o –

+0

JSON.parse(jsonData)是否工作? – Bikee

回答

1

試試下面的代碼:

for (var i = 0; i < jsonData.childReports[0].result.suites[0].cases.length; i++) { 
     var age = jsonData.childReports[0].result.suites[0].cases[i].age; 
    } 
0

正確的JSON:

{ 
"failCount" : 1, 
"skipCount" : 15, 
"totalCount" : 156, 
"childReports" : [ 
{ 
"result" : { 
    duration : 0.97834, 
    empty : false, 
     suites : [{ 
     cases : [ 
     { 
     "age" : 0, 
     "status" : "Passed" 
     }, 
     { 
     "age" : 15, 
     "status" : "Passed" 
     }, 
     { 
     "age" : 3, 
     "status" : "failed" 
     } 
    ]} 
    ] 
} 
}] 
} 
0

這樣你就可以做到這一點:

var data = { 
"failCount" : 1, 
"skipCount" : 15, 
"totalCount" : 156, 
"childReports" : [ 
{ 
"result" : { 
    duration : 0.97834, 
    empty : false, 
     suites : [{ 
     cases : [ 
     { 
     "age" : 0, 
     "status" : "Passed" 
     }, 
     { 
     "age" : 15, 
     "status" : "Passed" 
     }, 
     { 
     "age" : 3, 
     "status" : "failed" 
     } 
    ]} 
    ] 
} 
}] 
}; 

for (var i = 0; i < data.childReports[0].result.suites[0].cases.length; i++) { 
     console.log(data.childReports[0].result.suites[0].cases[i].age); 
    } 

DEMO