【发布时间】:2018-02-01 11:43:47
【问题描述】:
如何创建无限嵌套的 json 并在 go lang 数据结构中访问它,
例如下面的示例 json 具有 3 个级别,通常它应该是动态的,用户可以通过从下拉列表中选择值来添加任何子节点,该下拉列表是 UI 上的下拉列表。
{
"value": {
"Id": "1",
"Text": "abcd",
"Parent": ""
},
"children": [
{
"value": {
"Id": "2",
"Text": "abcd",
"Parent": "1"
},
"children": [
{
"value": {
"Id": "3",
"Text": "abcd",
"Parent": "1"
}
}
]
}
]
}
go 中的结构:我已经创建了这个 go 数据结构,但它最多只能访问 3 个基于上述 json 的级别,我们可以让这个数据结构成为动态的,它应该处理无限嵌套的 json。
type AutoGenerated struct {
Value struct {
ID string `json:"Id"`
Text string `json:"Text"`
Parent string `json:"Parent"`
} `json:"value"`
Children []struct {
Value struct {
ID string `json:"Id"`
Text string `json:"Text"`
Parent string `json:"Parent"`
} `json:"value"`
Children []struct {
Value struct {
ID string `json:"Id"`
Text string `json:"Text"`
Parent string `json:"Parent"`
} `json:"value"`
} `json:"children"`
} `json:"children"`
}
注意:我们可以添加 n 个父节点和 n 个子节点,这在 Go 数据结构中是否可行?
您能建议最好和最简单的方法来实现它吗?
我们如何添加/删除/编辑任何父母或孩子? (上面的 json 示例将来自 UI)?添加/删除/编辑需要哪个 json 结构或 id 的任何父级或子级?
【问题讨论】:
标签: json go data-structures