我想要什么?
从地图中获取 JSON 格式的树。
要使用的数据:
映射(键值对),将键作为父项,以各自的值作为子项
法典:下面的代码使用示例数据,我想稍后使用大数据意味着有更多的父子。如何从地图构建父子级?如果我需要任何其他信息来将地图数据解析为树结构,请告诉我?
type Nodes struct {
fn string
children []*Nodes
}
func main() {
var m map[string][]string
m = make(map[string][]string)
//map of parents(key) and child(values)
m["root_node"] = []string{"1","2","3","4"}
m["1"] = []string{"5","6"}
m["2"] = []string{"7"}
m["3"] = []string{"8", "9"}
m["5"] = []string{"10"}
m["7"] = []string{"11"}
m["8"] = []string{"12","13"}
//json format: I don't know how to get root_node so expected result can be achieved
bytes, err := json.Marshal(root_node)
if err != nil {
log.Fatal(err)
}
}
我的期望:
{
"Funcname": "root_node",
"Nodes": [
{
"Funcname": "1",
"Nodes": [
{
"Funcname": "5",
"Nodes": [
{
"Funcname": "10",
"Nodes": null
}
]
},
{
"Funcname": "6",
"Nodes": null
}
]
},
{
"Funcname": "2",
"Nodes": [
{
"Funcname": "7",
"Nodes": [
{
"Funcname": "11",
"Nodes": null
}
]
}
]
},
{
"Funcname": "3",
"Nodes": [
{
"Funcname": "8",
"Nodes": [
{
"Funcname": "12",
"Nodes": null
},
{
"Funcname": "13",
"Nodes": null
}
]
},
{
"Funcname": "9",
"Nodes": null
}
]
},
{
"Funcname": "4",
"Nodes": null
}
]
}
倚天杖
侃侃尔雅
相关分类