我为地图创建了一个自定义类型。我想将数组 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)
}
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消