为了账号安全,请及时绑定邮箱和手机立即绑定

取消封送自定义值地图

取消封送自定义值地图

Go
UYOU 2022-09-26 19:49:40
我为地图创建了一个自定义类型。我想将数组 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)    }
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

由于 的源值为字符串,因此需要添加字段标记:f2


package main


import (

   "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)

}


查看完整回答
反对 回复 2022-09-26
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号