我有一个 JSON 表示菜单项。一个菜单项可以有一个子菜单项,而子菜单项又可以有另一个子菜单项,依此类推。输入 JSON 通过父 ID 关联菜单项。我试图将其转换为一个模型,其中每个菜单项都有其子菜单项的一部分。子菜单有三层深。我已经设法解析了两个级别,但我不知道为什么没有解析第三个级别。我一直在调试这个问题几个小时。我会很感激一些帮助。menu2.sjon[ { "category_id": 4, "category_id_400": "'SCHOO", "name": "School Supplies", "parent_id": 2, "position": 2, "level": 2, "status": 1, "url": "http://www.booksrus.kw/sa-en/school-supplies.html" }, { "category_id": 141, "category_id_400": "'SCHBA", "name": "School Bags", "parent_id": 4, "position": 12, "level": 3, "status": 1, "url": "http://www.booksrus.kw/sa-en/school-supplies/school-bags.html" }, { "category_id": 269, "category_id_400": "'AEP", "name": "Bags Knapsack with Trolley", "parent_id": 141, "position": 1, "level": 4, "status": 1, "url": "http://www.booksrus.kw/sa-en/school-supplies/school-bags/bags-knapsack-with-trolley.html" }]输出Rootitems:[4 School Supplies> 141 School Bags//Third level should appear here]
1 回答
largeQ
TA贡献2039条经验 获得超7个赞
TryAdd函数中的这个循环很可能是你的问题:
for _, sub := range m.Subs {
if found := sub.TryAdd(other); found {
return true
}
}
sub这个循环中的变量实际上是切片元素的副本。您在那里所做的任何更改都不会保留回存储在切片中的元素。
您应该能够通过不使用元素的副本来解决这个问题,而是通过它的索引来引用它:
for i := range m.Subs {
if found := m.Subs[i].TryAdd(other); found {
return true
}
}
- 1 回答
- 0 关注
- 168 浏览
添加回答
举报
0/150
提交
取消