将JSON视为树结构

时间:2013-07-10 03:30:57

标签: javascript

我有一些传入的JSON,它只包含嵌套的地图(没有数组),例如,

{
    "name1": {
        "name2": "name3",
        "name4": {
            "name5": "name6"
        }
    },
    "name7": "name8"
}

请注意,此处的键和值不遵循任何特定模式。

我想要的是,给定这样一个表示树根的对象,生成一个表示第一层子节点的新对象列表,每个对象都作为一个新的JSON对象。

2 个答案:

答案 0 :(得分:2)

这样的东西
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

答案 1 :(得分:0)

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"
})