我有一些传入的JSON只由嵌套的地图(无阵列),例如,治疗JSON为树形结构
{
"name1": {
"name2": "name3",
"name4": {
"name5": "name6"
}
},
"name7": "name8"
}
注意,这里的键和值不遵循任何特定的图案。
我想要的是,给定这样一个代表树的根的对象,产生代表第一层儿童的新对象列表,每个新对象都是一个新的JSON对象。
我有一些传入的JSON只由嵌套的地图(无阵列),例如,治疗JSON为树形结构
{
"name1": {
"name2": "name3",
"name4": {
"name5": "name6"
}
},
"name7": "name8"
}
注意,这里的键和值不遵循任何特定的图案。
我想要的是,给定这样一个代表树的根的对象,产生代表第一层儿童的新对象列表,每个新对象都是一个新的JSON对象。
喜欢的东西
var obj = {
"name1": {"name2": "name3", "name4": {"name5": "name6"}},
"name7": "name8"
}
var result = [], tmp;
for(var key in obj){
if(obj.hasOwnProperty(key)){
tmp = {};
tmp[key] = obj[key];
result.push(tmp)
}
}
console.log(result)
演示:Fiddle
我改变了我的整个方法,但这确实实现了要求的问题。 –
function ent(map) {
var entries = [];
for (var key in map)
entries.push({
key: key,
value: map[key]
});
return entries;
}
ent({
"name1": {"name2": "name3", "name4": {"name5": "name6"}},
"name7": "name8"
})
如果你不完全在具有嵌套对象的想法设置,我就断定了一种选择你,而不是坚持认为: - 每个元素都有一个id节点(对于某些指定的id属性)。 - 每个元素都可以指定具有父属性的父节点。 - 有一个没有父节点的单节点。这是根节点。 如果您以这种方式提供JSON数据,最终可能更容易以流式友好方式构建树。 –