2014-10-19 36 views
0

我試圖在json字符串中獲取數組的內容(未知大小)。json數組的內容 - 如何獲取使用js的所有元素

以下:

var text = '[ { "_id" : { "$oid" : "54426dbfe4b0a1df0eb4a0f6"} , "user" : "fran" , "fecha" : "18/10/2014" , "time" : "7"} , { "_id" : { "$oid" : "54426efae4b00975f860fc06"} , "user" : "elle" , "fecha" : "18/10/2014" , "time" : "9" , "w" : { "w1" : "dog, dok" , "w2" : "cat, kat", "w3" : "pork, porc"}} ]'; 

obj = JSON.parse(text); 
document.getElementById("demo").innerHTML = 
//obj[0].score; 
//obj[0].user; 
//obj[1].w.w1; 
for (var i in obj[1].w) { 
console.log(i); 
} 

我怎麼能循環並獲得 「W」 的所有值?

問候。

回答

0

你已經差不多知道了,所有你需要內部的for循環是obj[1].w[i]訪問每個值。

請記住,這段代碼非常依賴於它始終是數組中的第二個對象,您應該使它更加動態或檢查一路上的錯誤。

+0

謝謝,我將此標記爲正確的答案,不僅因爲它有效,還因爲考慮使其更具動態性的額外提示。問候。 – 2014-10-19 12:39:26

0

嘗試像下面

for (var i in obj[1].w) { 
    console.log(obj[1].w[i]); 
} 
+0

謝謝TGH。您的解決方案正確運行 – 2014-10-19 12:40:47

0

你將需要一些東西recursive
這裏的東西短,我已經寫了,你可能要擴大這樣的:

function print(obj) { 
    for (var key in obj) { 
     if (typeof obj[key] == 'string') { 
      console.log(key + ':' + obj[key]); 
     } else { 
      console.log(key + ' recursive'); 
      print(obj[key]); 
     } 
    } 
} 

var text = '[ { "_id" : { "$oid" : "54426dbfe4b0a1df0eb4a0f6"} , "user" : "fran" , "fecha" : "18/10/2014" , "time" : "7"} , { "_id" : { "$oid" : "54426efae4b00975f860fc06"} , "user" : "elle" , "fecha" : "18/10/2014" , "time" : "9" , "w" : { "w1" : "dog, dok" , "w2" : "cat, kat", "w3" : "pork, porc"}} ]'; 

var myObj = JSON.parse(text); 
print(myObj); 

這裏是你的JSFIDDLE

+0

謝謝,實際上我可以對此進行擴展,但是需要「快速」的東西,並且需要使用此解決方案進行更多解析。最好的祝福。 – 2014-10-19 12:40:21

相關問題