Go 如何解组map[string]接口类型的结构字段
我正在试图解开多维JSON。我的JSON包含动态密钥,因此我不能这样做 JSONGo 如何解组map[string]接口类型的结构字段,go,go-gin,Go,Go Gin,我正在试图解开多维JSON。我的JSON包含动态密钥,因此我不能这样做 JSON { "id":"3", "datetime":"2019-06-08", "metadata":[{"a":"A"},{"b":"B"}] } 转到文件 type Chats结构{ Id字符串json:“Id” 日期时间字符串json:“日期” 元数据字符串json:“元数据” } chat:=models.Chats{} 错误:=c.BindJSON(&cha
{
"id":"3",
"datetime":"2019-06-08",
"metadata":[{"a":"A"},{"b":"B"}]
}
转到文件
type Chats结构{
Id字符串json:“Id”
日期时间字符串json:“日期”
元数据字符串json:“元数据”
}
chat:=models.Chats{}
错误:=c.BindJSON(&chat)
如果出错!=零{
c、 错误(err)
返回
}
fmt.Println(聊天室)
如果元数据是动态的,那么将其视为接口{}
。如果您知道它总是一个JSON容器,那么为了方便起见,您可以执行map[string]interface{}
。如果您不一定想使用类型断言来查看其中的内容,而只是想保留json(我猜这是您希望通过将其设置为字符串来实现的),那么还有json.RawMessage
type Chats struct {
Id string `json:"id"`
Datetime string `json:"date"`
Metadata interface{} `json:"metadata"`
}
type Chats struct {
Id string `json:"id"`
Datetime string `json:"date"`
Metadata map[string]interface{} `json:"metadata"`
}
type Chats struct {
Id string `json:"id"`
Datetime string `json:"date"`
Metadata json.RawMessage `json:"metadata"`
}