您好我有以下带有嵌套对象的JSON文件:
{
"Maps": {
"Campus": [
{
"name": "nus",
"Building": [
{
"name": "sde1",
"Floor": [
{
"name": "floor1"
},
{
"name": "floor2"
}
]
},
{
"name": "sde2"
}
]
},
{
"name": "ntu",
"Building": [
{
"name": "ece1",
"Floor": [
{
"name": "floor1"
},
{
"name": "floor2"
},
{
"name": "floor3"
}
]
},
{
"name": "ece2"
}
]
}
]
}
}
我想使用javascript或node.js模块来解析上面的JSON文件,并在数组中获得以下格式:
nus>sde1>floor1
nus>sde1>floor2
ntu>ece1>floor1
ntu>ece1>floor2
ntu>ece1>floor3
基本上我必须将Campus Name
与Building Name
和Floor name
连接起来,并在其间放置一个<
符号。
如果嵌套对象字段Floor
不存在,请忽略该解析并继续下一个子对象。
如何以简单的方式实现这一目标?感谢。
答案 0 :(得分:0)
您可以使用forEach()
循环执行此操作并添加到数组。
var obj = {"Maps":{"Campus":[{"name":"nus","Building":[{"name":"sde1","Floor":[{"name":"floor1"},{"name":"floor2"}]},{"name":"sde2"}]},{"name":"ntu","Building":[{"name":"ece1","Floor":[{"name":"floor1"},{"name":"floor2"},{"name":"floor3"}]},{"name":"ece2"}]}]}}
var result = [];
obj.Maps.Campus.forEach(function(e) {
e.Building.forEach(function(a) {
if (a.Floor) {
a.Floor.forEach(function(c) {
result.push(e.name + '>' + a.name + '>' + c.name);
})
}
})
})
console.log(result)
&#13;