取消封送自定义值地图

我为地图创建了一个自定义类型。我想将数组 json 响应解封到地图中。每次收到响应时,映射的键值都会更改。我遇到的问题是取消封送函数未正确映射到自定义值。


    type id map[string]yp


    type yp struct {

        f1      string              

        f2      int     

    }   


    func main() {

        data := []byte("[{\"unique1\":{\"f1\":\"1\",\"f2\":\"2\"}},{\"unique2\":{\"f1\":\"4\",\"f2\":\"7\"}}]")

        var i []id

        json.Unmarshal(data,&i)

        fmt.Printf("%v",i)

    }


UYOU
浏览 114回答 1
1回答

慕少森

由于 的源值为字符串,因此需要添加字段标记:f2package mainimport (   "encoding/json"   "fmt")var data = []byte(`[   {      "unique1": {"f1": "1", "f2": "2"}   }, {      "unique2": {"f1": "4", "f2": "7"}   }]`)func main() {   var ids []map[string]struct {      F1 string                    F2 int `json:"f2,string"`   }   json.Unmarshal(data, &ids)   // [map[unique1:{F1:1 F2:2}] map[unique2:{F1:4 F2:7}]]   fmt.Printf("%+v\n", ids)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go