[英]mgo error when unmarshal map[string]interface{}
我想在结构中存储任意json对象:
type C struct { Name string `json:"name" bson:"name"` Config map[string]interface{} `json:"config" bson:"config"` }
当我存储任何深度嵌套的json对象时,此方法工作正常,但是当我检索它并mgo尝试将其解组时,我得到
Unmarshal无法处理结构值。 使用指针。
我不确定应该是什么指针。 如果我将其更改为
Config *map[string]interface{}
发生相同的错误。
错误发生在这里: https : //github.com/MG-RAST/golib/blob/master/mgo/bson/bson.go#L493
我不知道它在反映什么。
因此,当您取消编组时,输入参数将使用指向该结构的指针,并且需要定义一个类型以便使用指向该结构的指针。
type myMap map[string]interface{}
然后,您可以使指向该类型的指针注意与号,以指示指向myMap类型的结构的指针,使用json可以执行以下操作:
json := []Byte{`{"name": "value"}`}
c := &myMap{"value": "name"}
json.Unmarshal(c, json)
因此,您需要* myMap到结构而不是类型的指针。 为了解释此问题的具体解决方案,您需要添加mongodb如何解组json的上下文。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.