假设我有一个应用程序接收两种不同格式的 json 数据。
f1 = `{"pointtype":"type1", "data":{"col1":"val1", "col2":"val2"}}`
f2 = `{"pointtype":"type2", "data":{"col3":"val3", "col3":"val3"}}`
我有一个与每种类型相关的结构:
type F1 struct {
col1 string
col2 string
}
type F2 struct {
col3 string
col4 string
}
假设我使用encoding/json库将原始 json 数据转换为结构体: type Point { pointtype string data json.RawMessage }
如何仅通过知道点类型将数据解码为适当的结构?
我正在尝试以下方面的内容:
func getType(pointType string) interface{} {
switch pointType {
case "f1":
var p F1
return &p
case "f2":
var p F2
return &p
}
return nil
}
这是行不通的,因为返回的值是一个接口,而不是正确的结构类型。我怎样才能使这种开关结构选择工作?
相关分类