Javascript 如何在基于JSON结构的复选框中显示内部子布尔值?
我正在实现基于JSON数据的表。我可以获得两个级别,但我无法获得大多数内部子级值。Javascript 如何在基于JSON结构的复选框中显示内部子布尔值?,javascript,jquery,html,Javascript,Jquery,Html,我正在实现基于JSON数据的表。我可以获得两个级别,但我无法获得大多数内部子级值。 var数据={ “管理”: { “通知”:{ “红色”:{“查看”:真,“编辑”:真,“删除”:真}, “黄色”:{“查看”:真,“编辑”:真,“删除”:真}, “特殊颜色”:“复选框” }, “黑色通知”:{“黑色”:“复选框”} }, “教员”: { “薪资”:{“列表”:“复选框”}, }, }; var zoneHtml=“”; 用于(数据中的var zoneKey){ zoneHtml+=''; zon
var数据={
“管理”:
{
“通知”:{
“红色”:{“查看”:真,“编辑”:真,“删除”:真},
“黄色”:{“查看”:真,“编辑”:真,“删除”:真},
“特殊颜色”:“复选框”
},
“黑色通知”:{“黑色”:“复选框”}
},
“教员”:
{
“薪资”:{“列表”:“复选框”},
},
};
var zoneHtml=“”;
用于(数据中的var zoneKey){
zoneHtml+='';
zoneHtml+=(“”+zoneKey+“”);
var jsonData=数据[zoneKey];
for(jsonData中的var listUI){
zoneHtml+='';
zoneHtml+=(“”+listUI+“”);
var-ports=jsonData[listUI];
zoneHtml+='';
用于(端口中的var端口){
zoneHtml+=(“- ”+端口+”:“+端口[端口]+”
”);
}
zoneHtml+='
';
zoneHtml+='';
}
zoneHtml+=(“”);
}
$(“#zone”).html(zoneHtml)代码>
.jsonData{
左边距:10%;
}
.港口{
左边距:10%;
}
您应该检查属性是否为对象,然后需要再次遍历每个属性。您可以使用逻辑并将其作为递归函数。
我已经更新了你的逻辑:
var数据={
“管理”:
{
“通知”:{
“红色”:{“删除”:真,“启用”:真,“查看”:真},
“黄色”:{“删除”:真,“启用”:真,“查看”:真},
“特殊颜色”:“复选框”
},
“黑色通知”:{“黑色”:“复选框”}
},
“教员”:
{
“薪资”:{“列表”:“复选框”},
},
};
var zoneHtml=“”;
用于(数据中的var zoneKey){
zoneHtml+='';
zoneHtml+=(“”+zoneKey+“”);
var jsonData=数据[zoneKey];
for(jsonData中的var listUI){
zoneHtml+='';
zoneHtml+=(“”+listUI+“”);
var-ports=jsonData[listUI];
zoneHtml+='';
用于(端口中的var端口){
if(端口类型[端口]=“对象”){
zoneHtml+='- '+端口+':';
zoneHtml+='
'
用于(端口[端口]中的var i){
zoneHtml+='- '+i+':'+ports[port][i]+'
';
}
zoneHtml+='
';
}否则{
zoneHtml+=(“- ”+端口+”:“+端口[端口]+”
”);
}
}
zoneHtml+='
';
zoneHtml+='';
}
zoneHtml+=(“”);
}
$(“#zone”).html(zoneHtml)代码>
$(“#zone”).html(zoneHtml);
杰桑达先生{
左边距:10%;
}
.港口{
左边距:10%;
}
您正在将对象插入字符串中,这使得JS使用对象#toString
,它始终是[Object Object]
。您希望在那里显示什么?请对JSON对象属性使用大小写、破折号或下划线,但这并不能解决您的问题。@Luca感谢您的快速评论。我想得到真正的标记复选框。我附加屏幕截图作为预期的输出。谢谢你的回答。我更新了一把小提琴。请检查答案,谢谢,需要一个帮助。你能检查一下这个链接吗。