这是我需要验证的 JSON 文档。我必须检查孩子中的所有 parent_id 是否正确。如果所有父子 ID 都是正确的,我将返回一个“有效”字符串。{ "id": 10, "children": [ { "id": 25, "parent_id": 10, "children": [ { "id": 131, "parent_id": 25, "children": null }, { "id": 33, "parent_id": 25, "children": [ { "id": 138, "parent_id": 33, "children": null }, { "id": 139, "parent_id": 33, "children": null }, { "id": 140, "parent_id": 33, "children": null }, { "id": 160, "parent_id": 33, "children": null }, { "id": 34, "parent_id": 33, "children": [ { "id": 26, "parent_id": 34, "children": null }, { "id": 64, "parent_id": 34, "children": null }, { "id": 65, "parent_id": 34, "children": null } ] }, { "id": 35, "parent_id": 33, "children": null }, { "id": 36, "parent_id": 33, "children": null }, { "id": 38, "parent_id": 33, "children": null }, { "id": 39, "parent_id": 33, "children": null }, { "id": 40, "parent_id": 33, "children": null },我从 API 中获取值,但现在我很难编码 Json 值
1 回答
森林海
TA贡献2011条经验 获得超2个赞
定义与数据结构匹配的类型:
type node struct {
ID int `json:"id"`
ParentID int `json:"parent_id"`
MainID int `json:"main_id"`
Children []*node `json:"children"`
}
编写一个递归函数来检查数据:
func check(n *node) bool {
for _, c := range n.Children {
if c.ParentID != n.ID {
return false
}
if !check(c) {
return false
}
}
return true
}
将 JSON 解组为该类型的值。检查结果。
var n node
err := json.Unmarshal(data, &n)
if err != nil {
log.Fatal(err)
}
fmt.Println(check(&n))
在 GoLang PlayGround 上运行它。
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报
0/150
提交
取消