json - 将字节数组解码到接口(interface)并将该接口(interface)类型转换为结构不起作用?

标签 json go interface

我已经使用 golang 编写代码一段时间了。我遇到了一些我认为会很好用的东西。

当我在 golang 中对嵌套结构进行 JSON 编码时,我得到了字节数组,当我将其解码为接口(interface)并将接口(interface)转换为相应的嵌套结构时,它让我感到 panic ,说明接口(interface)转换:接口(interface)是映射[ string]接口(interface)但不是嵌套结构。

请通过以下链接。

https://play.golang.org/p/apdR4TKjee-

有人可以向我解释我缺少的是什么吗?

最佳答案

当您将 JSON 解码到 interface{} 时,它无法知道您希望它使用什么类型,因此它默认为 map[string ]接口(interface){} as indicated in the documentation :

To unmarshal JSON into an interface value, Unmarshal stores one of these in the interface value:

...

map[string]interface{}, for JSON objects

如果要解码为特定类型,请将该类型的实例传递给 Unmarshal:

var result sample 
err = json.Unmarshal(data,&result)

关于json - 将字节数组解码到接口(interface)并将该接口(interface)类型转换为结构不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48711705/

相关文章:

go - 在 Golang 中处理 Http 上传 Zip 文件

unit-testing - 错误 : suite. go:61: test paniced: reflect: Call with too few input arguments

c# - 使用接口(interface)时如何实现私有(private) setter ?

c# - 基类、派生类、Iclass?

javascript - 如何将硬编码值添加到 JSON 响应中

json - 如何从 Ruby on Rails 解析 json 数据或(json 代码)

c++ - 相当于 Go 中的 sizeof(aType)

javascript - typescript -对象作为私有(private)或 protected

json - 使用字符串数组的 ngResource 请求结果无效

json - Django 休息框架 - "detail": "Not found."