【发布时间】:2021-07-15 12:59:27
【问题描述】:
我想要什么?
从地图中获取 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
}
]
}
【问题讨论】:
标签: go data-structures tree