2011-07-22 57 views
0

我需要顯示子值,但它顯示[對象,對象]像這樣問題通過嵌套JavaScript對象和陣列

這裏我的代碼循環:

var jsonObj = {"department":{ 
       "Title1":[ 
          {"child1":"Green", 
          "child2":"Yellow" 
          }, 

          {"child3":"Black", 
          "child4":"White" 
          } 
          ], 
       "Title2":[ 
          {"child5":"Violet", 
          "child6":"purple" 
          }, 
          {"child7":"Pink", 
          "child8":"Orange" 
          } 
          ] 
    } 
} 
$(document).ready(function() { 

var treeList = ""; 
treeList = "<ul id=\"createTree\">";  
for(var key in jsonObj){ 
     for(var subKey in jsonObj[key]){ 
     alert(subKey); 
     //for(i=0; i<jsonObj[key].length;i++) { 
      treeList += ("<li>" + subKey + "<ul><li>"+jsonObj[key][subKey]+"</li></ul></li>"); 
      //var b = $(c).text(); 
      alert(treeList); 
     } 
    } 
treeList += "</ul>"; 
$('#tree').append(treeList); 
}); 
+1

考慮編寫一個更具描述性標題你的問題,簡明扼要,沒有必要在標題中包括你的整個問題...... –

+1

你的代碼中沒有JSON。我會說你有一個JavaScript對象的問題。 –

回答

1

正如Quentin所說,你需要繼續向下鑽取,首先進入數組,然後進入數組中包含的對象。下面的代碼應該訪問的JSON舉行的所有變量,你可能不得不調整其輸出得到它看的HTML,只要你想 -

$(document).ready(function() { 

var treeList = ""; 
treeList = "<ul id=\"createTree\">";  
for(var key in jsonObj){ 
     for(var subKey in jsonObj[key]){ 
     alert(subKey); 
     for(i=0; i<jsonObj[key][subKey].length;i++) { 
      for(var arrayKey in jsonObj[key][subKey][i]){ 
       treeList += ("<li>" + subKey + " - " + arrayKey + " - "+jsonObj[key][subKey][i][arrayKey]+"</li></ul></li>"); 
      }  
      //var b = $(c).text(); 
      alert(treeList); 
     } 
     } 
    } 
    treeList += "</ul>"; 
    $('#tree').append(treeList); 
}); 
1

第一jsonObj[key][subKey]jsonObj.department.Title1 。這是一個數組。

當您對數組進行字符串化時,默認情況下會生成通用的「This is an object」文本。

如果你想顯示它的數據,你將不得不繼續下去,以獲得字符串。