亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解析嵌套列表不會下降到級別 3

解析嵌套列表不會下降到級別 3

Go
九州編程 2021-12-07 10:51:37
我有一個 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條經驗 獲得超8個贊

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

    }

}


查看完整回答
反對 回復 2021-12-07
  • 1 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號