您如何将json解组到包含uint8的结构中?我收到错误消息json: cannot unmarshal object into Go struct field A.test of type uint8
在我的结构中
type A struct {
Test uint8 `json:"test omitempty" bson:"test"`
}
我将struct A插入mongo,然后成功完成mongo查找并打印出与struct A相对应的集合。我可以执行bson.MarshalExtJSON将bson转换为json,然后当我执行json.Unmarshal将json转换为我失败的结构A时。
这是一个重现问题的样本golang游乐场。我不明白为什么会失败?我如何解决它?
https://play.golang.org/p/0HOAxsu166j
我看到unmarshal使用“float64,表示JSON数字”,但是我不能使用float64而不是uint8来工作
最佳答案
感谢@Brits的评论,我发现当我调用bson.MarshalExtJSON时得到了extendedJson。 json.Unmarshal()无法读取{"$numberInt":"52"}
这样的extendedJson,因此这就是失败的原因。
所以要解决这个问题,我使用的是bson.UnmarshalExtJSON()
而不是json.Unmarshal()
,以便能够将extendedJSON编组到结构中
关于json - 如何使用uint8解码json以构建结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59959492/