javascript中的动态JSON解析
我下面有一个JSON对象,我需要解析并填充该列表中该对象的最后一个子对象的值javascript中的动态JSON解析,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我下面有一个JSON对象,我需要解析并填充该列表中该对象的最后一个子对象的值 { "projectInfo": { "cabinetInfo": [ { "nodeName": "EAST", "boxName": "EAST-Box",
{
"projectInfo": {
"cabinetInfo": [
{
"nodeName": "EAST",
"boxName": "EAST-Box",
"children": [
{
"nodeName": "Street-3",
"smsName": "smsname",
"boxserilaNumber": 4004342423
},
{
"nodeName": "Street-2",
"smsName": "smsname",
"boxserilaNumber": 4004342423
},
{
"nodeName": "Street-1",
"smsName": "smsname",
"boxserilaNumber": 4004342423
}
]
},
{
"nodeName": "NORTH",
"boxName": "NORTH-Box",
"children": [
{
"nodeName": "ZONE1",
"boxName": "ZONE1-Box",
"children": [
{
"nodeName": "AREA",
"boxName": "AREA-Box",
"children": [
{
"nodeName": "Street-3",
"smsName": "smsname",
"boxserilaNumber": 4004342423
},
{
"nodeName": "Street-2",
"smsName": "smsname",
"boxserilaNumber": 4004342423
},
{
"nodeName": "Street-1",
"smsName": "smsname",
"boxserilaNumber": 4004342423
}
]
}
]
}
]
},
{
"nodeName": "SOUTH",
"boxName": "SOUTH-Box",
"children": [
{
"nodeName": "ZONE1",
"boxName": "ZONE1-Box",
"children": [
{
"nodeName": "SOCIETY",
"boxName": "SOCIETY-Box",
"children": [
{
"nodeName": "AREA",
"boxName": "AREA-Box",
"children": [
{
"nodeName": "Street-4",
"smsName": "smsname",
"boxserilaNumber": 4004342423
},
{
"nodeName": "Street-3",
"smsName": "smsname",
"boxserilaNumber": 4004342423
},
{
"nodeName": "Street-2",
"smsName": "smsname",
"boxserilaNumber": 4004342423
},
{
"nodeName": "Street-1",
"smsName": "smsname",
"boxserilaNumber": 4004342423
}
]
}
]
}
]
}
]
}
]
}
}
我在下面写了一段代码,但它打印的是3盒Serilanumber,而它应该打印9盒。我是javascript新手,因此无法找出我在这里做错的地方,无法获得正确的输出。我认为问题在于
RenderCasinetFolist方法,在该方法中,我进行递归调用以到达列表的底部,即有子对象
function renderCabinetInfo(nodeTree)
{
var cabinetLists = nodeTree.projectInfo.cabinetInfo;
for(var j=0;j<cabinetLists.length;j++)
{
var cabinetList = cabinetLists[j].children;
var cabinetInfoTags = renderCabinetInfoList(cabinetList);
var cTable=document.getElementById('cabinetInfoTable');
for(var i=0;i<cabinetInfoTags.length;i++)
{
console.log(cabinetInfoTags[i].boxserilaNumber);
}
}
};
function renderCabinetInfoList(cabinetList)
{
for(var i=0;i<cabinetList.length;i++)
{
var cabi = cabinetList[i];
if(haveChildren(cabi)) {
renderCabinetInfoList(cabi.children);
}
else
{
break;
}
}
return cabinetList=cabinetList;
}
function haveChildren(cabi)
{
if (null != cabi.children && cabi.children.length>0) {
return true;
}
return false;
}
函数rendercasinetinfo(nodeTree)
{
var cabinetLists=nodeTree.projectInfo.cabinetInfo;
对于(var j=0;j示例JSON既不是数组也不是有效的JSON。这可能是一个复制粘贴问题,请检查并更新您的问题。此外,不清楚您希望得到什么输出
有一种方法可用于提取嵌套值