我需要显示子值,但它会像那样显示[object,object]
这是我的代码:
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);
});
答案 0 :(得分:1)
第一个jsonObj[key][subKey]
将是jsonObj.department.Title1
。这是一个数组。
对字符串进行字符串化时,默认情况下会生成通用的“This is a object”文本。
如果你想在其中显示数据,你必须继续下去以获得字符串。
答案 1 :(得分: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);
});