gpt4 book ai didi

json - 解码 map[string]interface{} 时出现 mgo 错误

转载 作者:数据小太阳 更新时间:2023-10-29 03:24:13 31 4
gpt4 key购买 nike

我想在一个结构中存储一个任意的 json 对象:

type C struct {
Name string `json:"name" bson:"name"`
Config map[string]interface{} `json:"config" bson:"config"`
}

当我存储任何深度嵌套的 json 对象时,这工作正常,但是当我检索它并且 mgo 尝试解码它时,我得到:

Unmarshal can't deal with struct values. Use a pointer.

我不确定指针应该是什么。如果我将其更改为:

Config *map[string]interface{}

错误发生在这里:https://github.com/MG-RAST/golib/blob/master/mgo/bson/bson.go#L493

虽然我不知道它在反射(reflect)什么。

最佳答案

因此,当您解码时,输入参数采用指向结构的指针,并且您需要定义一个类型才能使用指向结构的指针。

type myMap map[string]interface{}

然后您可以创建一个指向该类型的指针,注意“&”表示指向您的 myMap 类型结构的指针,对于 json,您可以这样做:

json := []Byte{`{"name": "value"}`}
c := &myMap{"value": "name"}
json.Unmarshal(c, json)

所以你需要 *myMap 到结构而不是指向类型的指针。为了解释这个问题的具体解决方案,您需要添加 mongodb 如何解码您的 json 的上下文。

关于json - 解码 map[string]interface{} 时出现 mgo 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46623076/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com