我希望将一个对象列表转换成可被jstree解析的json格式。
data = [
{
"data" : {
"title" : "father",
"attr" : { "href" : "#" }
},
"children" : [
{
"data" : {
"title" : "Older Son",
"attr" : { "href" : "#" }
},
"children" : []
},
{
"data" : {
"title" : "Younger Son",
"attr" : { "href" : "#" }
},
"children" : []
}
]
},
]
我的输入看起来像这样:
[
Object
id: 35
name: "bnm,bnm"
parent_id: null
,
Object
id: 36
name: "ghk"
parent_id: 35
,
Object
id: 37
name: "hgkgh"
parent_id: null
,
Object
id: 38
name: "jklhjk"
parent_id: null
,
Object
id: 39
name: "fghdfgh"
parent_id: 38
,
Object
id: 40
name: "bsdbd"
parent_id: 38
,
...]
说实话,这不是一棵树,而是一片森林。但这并不重要。
我已经花了很多时间,但没有成功地让它工作。在JavaScript中操作数组似乎比Java、C++或PHP更麻烦...
到目前为止,我尝试的方法是:
- (前置)源数据(对象列表)符合一个条件:儿子不能出现在父亲之前
- 将其转换为关联数组(键=id,值=对象),因此必须使用字符串作为键。
- 弹出最后一个数组元素,并将其推入其父元素的子元素数组中。对于所有非空父元素重复此过程。
- 希望这样做应该可以解决问题。