我已经用 golang 编码有一段时间了。我遇到了一些我认为可以完美工作的东西。
当我在 golang 中 JSON Marshal 一个嵌套结构时,我得到了字节数组,当我将其 UnMarshal 到一个接口并将接口转换为相应的嵌套结构时,它给了我一个恐慌,说明接口转换:接口是 map[string]interface但不是嵌套结构。
请点击下面的链接。
https://play.golang.org/p/apdR4TKjee-
有人可以向我解释我缺少什么吗?
当您将 JSON 解组为时interface{},它无法知道您希望它使用什么类型,因此它默认为map[string]interface{} 文档中所示的类型:
要将 JSON 解组为接口值,Unmarshal 将以下内容之一存储在接口值中:
...
map[string]interface{}, for JSON objects
如果要解组为特定类型,请将该类型的实例传递给 Unmarshal:
var result sample
err = json.Unmarshal(data,&result)
Run Code Online (Sandbox Code Playgroud)