将JSON树结构读入自定义javascript对象

时间:2015-07-28 21:25:11

标签: javascript json tree

我有一个JSON字符串:

{ "a1": "root", 
  "a2": "root data", 
  "children": [
    { "a1": "child 1", 
      "a2": "child 1 data", 
      "children": []
    }, 
    { "a1": "child 2", 
      "a2": "child 2 data", 
      "children": [
        { "a1": "child 3", 
          "a2": "child 3 data", 
          "children": []
        }
      ]
    }
  ]
}

我想将这个JSON树结构化字符串读入JavaScript对象。我希望JavaScript对象的类定义如下:

function MyNode(){
    this.a1 = ""
    this.a2 = ""
    this.children = []
}

基本上在阅读JSON数据结构后,我希望有一个MyNode类型的实例,其参数为a1 a2children,其中{{1}或者根节点具有类型children的实例以及JSON字符串中指定的数据/参数。

我怎样才能做到这一点?任何指针都会非常有用。

1 个答案:

答案 0 :(得分:3)

首先在该字符串上调用JSON.parse,然后调用一个递归函数,该函数将使用您的构造函数创建一个树。

<强>更新

  var output = parse_constructor(json);
    console.log(output);

    function parse_constructor(input){

       var output = new MyNode();
       output.a1 = input.a1;
       output.a2 = input.a2;

       for(var i in input.children){
           output.children.push(
               parse_constructor(input.children[i])
           );
       }
       return output;
    }

Time#to_r