【发布时间】:2020-02-06 23:27:08
【问题描述】:
我在将 JSON 解组为 Go 结构时遇到问题。显然问题的根源是不稳定的——int64 的字符串即将到来,除了我没有找到解决它的方法而不将 Count 的数据类型更改为 map[string]string。我在 SO 上看到了类似的讨论,但它们并没有太大帮助。这是一个有代表性的代码和问题。请建议我如何通过。
type Product struct {
Count map[string]int64 `json:",string"`
}
func main() {
s := `{"count":{"FAN":"58"}}`
var pro Product
err := json.Unmarshal([]byte(s), &pro)
if err == nil {
fmt.Printf("%+v\n", pro)
} else {
fmt.Println(err)
fmt.Printf("%+v\n", pro)
}
}
输出:
json:无法将字符串解组为 int64 类型的 Go struct 字段 Product.Count {计数:地图[FAN:0]}
【问题讨论】:
-
似乎 "58" 是一个字符串,而不是
Count指定的 int64。 -
去文档编码/json.Number
-
反对票让我觉得相当苛刻:鉴于存在
,string,这似乎是可行的,并且有a similarly fair question on how to do this with slices 而不是地图。
标签: json dictionary parsing go