Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在基于JSON结构的复选框中显示内部子布尔值?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何在基于JSON结构的复选框中显示内部子布尔值?

Javascript 如何在基于JSON结构的复选框中显示内部子布尔值?,javascript,jquery,html,Javascript,Jquery,Html,我正在实现基于JSON数据的表。我可以获得两个级别,但我无法获得大多数内部子级值。 var数据={ “管理”: { “通知”:{ “红色”:{“查看”:真,“编辑”:真,“删除”:真}, “黄色”:{“查看”:真,“编辑”:真,“删除”:真}, “特殊颜色”:“复选框” }, “黑色通知”:{“黑色”:“复选框”} }, “教员”: { “薪资”:{“列表”:“复选框”}, }, }; var zoneHtml=“”; 用于(数据中的var zoneKey){ zoneHtml+=''; zon

我正在实现基于JSON数据的表。我可以获得两个级别,但我无法获得大多数内部子级值。
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感谢您的快速评论。我想得到真正的标记复选框。我附加屏幕截图作为预期的输出。谢谢你的回答。我更新了一把小提琴。请检查答案,谢谢,需要一个帮助。你能检查一下这个链接吗。