我想将对象列表“翻译”为 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 相比)...
到目前为止我尝试过的是:
- (pre)源数据(对象列表)满足一个条件:儿子不能在其父之前出现
- 使它成为关联数组(key=id,value=object),所以它必须是字符串键控的。
- 弹出最后一个数组元素并将其推入其父元素的子数组中。对所有非空父元素重复此操作。
- 希望这应该工作。