将JSON解组到结构中,同时支持属性值的不同类型

将JSON解组到结构中,同时支持属性值的不同类型,json,go,Json,Go,在Golang中是否有可能将JSON对象解组到一个结构中,其中JSON对象的属性在不同情况下可以是object或array(或通常支持各种类型) 例如,在一种情况下,JSON可能如下所示: { "config": { "source": "config.cnf" } } 但同时,JSON也可能是这样的: { "config": [ "value1", "value2" ] } 如果是这样,结构会是什么样子?您应该解码到一个空接口(接口{})。因为它没有

在Golang中是否有可能将JSON对象解组到一个结构中,其中JSON对象的属性在不同情况下可以是object或array(或通常支持各种类型)

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

{
    "config": {
        "source": "config.cnf"
    }
}
但同时,JSON也可能是这样的:

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

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

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

type Data struct {
    Config interface{}
}

我已经创建并演示了这一点。

json包可以解码成
接口{}
。你遇到了什么问题?