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

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

有沒有辦法將JSON解構到映射中并保留密鑰順序

有沒有辦法將JSON解構到映射中并保留密鑰順序

Go
慕森王 2022-08-15 10:10:08
我需要通過保留鍵和值的順序將 JSON 數據取消到映射中。這是一個 JSON 數據示例:{    "31ded736-4076-4b1c-b38f-7e8d9fa78b41": {      "Name": "Requested",      "Items": [        { "ID": "c7ac5b7f-59b0-45e3-82fb-b3b0afc05f55", "GroupName": "First task" , "NumQuestion": "10" ,"Score":"10"},        {"ID": "17acf9a1-b2c7-46c6-b975-759b9d9f538d", "GroupName": "Test1" , "NumQuestion": "20" ,"Score":"5" }      ]    },    "115f7d04-3075-408a-b8ce-c6e46fe6053f": {      "Name": "To do",      "Items": [        { "ID": "c7ac5b7f-59b0-45e3-82fb-b3b0afc05f56", "GroupName": "First task" , "NumQuestion": "5" ,"Score":"10"}      ]    },    "9bcf1415-3a41-43b6-a871-8de1939a75c4": {      "Name": "In Progress",      "Items": [        { "ID": "c7ac5b7f-59b0-45e3-82fb-b3b0afc05f57", "GroupName": "Second task" , "NumQuestion": "10" ,"Score":"5"}      ]    },    "2f6c1455-6cf9-4009-b86b-de0a0d2204a1": {      "Name": "Done",      "Items": [        { "ID": "c7ac5b7f-59b0-45e3-82fb-b3b0afc05f58", "GroupName": "Third task" , "NumQuestion": "20" , "Score":"7"}      ]    }  }這是我的代碼:var GroupTestListUpdate = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {    type Item struct {        ID string `json:"id"`        GroupName string `json:"groupName"`        NumQuestion string `json:"numQuestion"`        Score string `json:"score"`    }    type Input struct {        Name string `json:"name"`        Items []Item `array:"item"`    }    var objmap map[string]Input    reqBody, err := ioutil.ReadAll(r.Body)    if err != nil{        http.Error(w, "can't read body", http.StatusBadRequest)            return    }    json.Unmarshal(reqBody, &objmap)    fmt.Println(objmap)})問題:我想知道如何保留鍵和值的順序。每次嘗試此代碼時,我都得到了相同的輸出,所以我想知道地圖中的順序不是完全隨機的嗎?
查看完整描述

1 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

是的。

您可以重寫自定義地圖類型上的方法,該方法將允許您保留順序。UnmarshalJSON

例如,這里有一個庫可以做到這一點:https://github.com/iancoleman/orderedmap。


查看完整回答
反對 回復 2022-08-15
  • 1 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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