我想在结构中存储任意json对象:
type C struct { Name string `json:"name" bson:"name"` Config map[string]interface{} `json:"config" bson:"config"` }
当我存储任何深度嵌套的json对象时,这很好用,但是当我去检索它并且mgo尝试解组它时,我得到了
Unmarshal无法处理struct值。使用指针。
我不确定应该是什么指针。如果我将其更改为
Config *map[string]interface{}
发生同样的错误。
此处发生错误:https://github.com/MG-RAST/golib/blob/master/mgo/bson/bson.go#L493
我不知道它的反映是什么。
答案 0 :(得分:0)
因此,当您解组时,输入参数会获取指向结构的指针,并且您需要定义一个类型才能使用指向结构的指针。
type myMap map[string]interface{}
然后你可以创建一个指向该类型的指针,注意&符号以指示你的结构类型myMap的指针,json你可以这样做:
json := []Byte{`{"name": "value"}`}
c := &myMap{"value": "name"}
json.Unmarshal(c, json)
所以你需要* myMap到struct而不是指向该类型的指针。为了解释这个问题的具体解决方案,你需要添加mongodb如何解组你的json的上下文。