我有一個(gè) JSON 表示菜單項(xiàng)。一個(gè)菜單項(xiàng)可以有一個(gè)子菜單項(xiàng),而子菜單項(xiàng)又可以有另一個(gè)子菜單項(xiàng),依此類推。輸入 JSON 通過父 ID 關(guān)聯(lián)菜單項(xiàng)。我試圖將其轉(zhuǎn)換為一個(gè)模型,其中每個(gè)菜單項(xiàng)都有其子菜單項(xiàng)的一部分。子菜單有三層深。我已經(jīng)設(shè)法解析了兩個(gè)級別,但我不知道為什么沒有解析第三個(gè)級別。我一直在調(diào)試這個(gè)問題幾個(gè)小時(shí)。我會(huì)很感激一些幫助。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貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
TryAdd函數(shù)中的這個(gè)循環(huán)很可能是你的問題:
for _, sub := range m.Subs {
if found := sub.TryAdd(other); found {
return true
}
}
sub這個(gè)循環(huán)中的變量實(shí)際上是切片元素的副本。您在那里所做的任何更改都不會(huì)保留回存儲(chǔ)在切片中的元素。
您應(yīng)該能夠通過不使用元素的副本來解決這個(gè)問題,而是通過它的索引來引用它:
for i := range m.Subs {
if found := m.Subs[i].TryAdd(other); found {
return true
}
}
- 1 回答
- 0 關(guān)注
- 203 瀏覽
添加回答
舉報(bào)
0/150
提交
取消