json - 将 JSON 解码为结构,同时支持属性值的不同类型

标签 json go

在不同情况下,Golang 是否有可能将 JSON 对象解码为结构,其中 JSON 对象具有可以是对象或数组(或通常支持各种类型)的属性?

例如,在一种情况下,JSON 可能如下所示:

{
    "config": {
        "source": "config.cnf"
    }
}

但同时,JSON也可能是这样的:

{
    "config": [ "value1", "value2" ]
}

如果是这样,结构会是什么样子?

最佳答案

您应该解码为空接口(interface) (interface{})。因为它没有方法,所以每个类型都实现它。

type Data struct {
    Config interface{}
}

我创建了 an elaborate Playground证明这一点。

关于json - 将 JSON 解码为结构,同时支持属性值的不同类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51069813/

相关文章:

python - 奇怪的 python 问题, 'unicode' 对象没有属性 'read'

java - Json/Java 新手 - 这是什么数据类型?约会时间? 13 位长。使用 PHP

go - 如何将两个字母的国家代码映射到表情符号?

xml - 如何将嵌套的 XML 元素解码为字符串数组?

json - 如何以编程方式运行 rspec 测试并捕获输出?

json - jq 按版本排序为字符串

json - flutter:嵌套的json解析列表

encryption - golang rsa解密没有填充?

git - 使用本地包的 Godep

go - golang中io.ReadWriteSeeker的实现