【发布时间】:2017-06-12 21:49:33
【问题描述】:
当您将 JSON 解组为 []interface{} 时,除了一些标准类型(如 bool、int 和 string)之外,还有什么方法可以自动检测类型?
我注意到以下内容,假设我编组 [uuid.UUID, bool] 然后我得到的 JSON 看起来像:
[[234,50,7,116,194,41,64,225,177,151,60,195,60,45,123,106],true]
当我再次解组它时,我得到了通过reflect 显示的类型:
[]interface{}, bool
我不明白为什么它选择了[]interface{}。如果检测不到,不应该是至少interface{}吗?
无论如何,我的问题是,当目标是[]interface{} 类型时,是否可以解组任何类型?它似乎适用于 string、bool、int 等标准类型,但对于自定义类型,我认为这是不可能的,是吗?您可以定义自定义 JSON 编组/解组方法,但这仅在您将其解码为目标类型时才有效,以便它可以查找要使用的自定义编组/解组方法。
【问题讨论】:
标签: json go reflection types