Json 如何对同一变量的不同类型进行解组
我正在使用具有可能输出的API:Json 如何对同一变量的不同类型进行解组,json,go,go-http,Json,Go,Go Http,我正在使用具有可能输出的API: [ { "contactId": 2, "email": "karina.plain@example.com", "markerName": "JavascriptEngine", "dataType": "String", "value": "Carakan", "dateEntered": "2013-01-03T14:52:00" }, { "contactId": 2, "email": "karina.plain@e
[
{
"contactId": 2,
"email": "karina.plain@example.com",
"markerName": "JavascriptEngine",
"dataType": "String",
"value": "Carakan",
"dateEntered": "2013-01-03T14:52:00"
},
{
"contactId": 2,
"email": "karina.plain@example.com",
"markerName": "HasReadEntireMessage",
"dataType": "Boolean",
"value": true,
"dateEntered": "2013-01-03T18:02:00"
}]
我对“value”有一个问题。一个结构应该是什么样的,它将允许这个JSON解组到它的数组中
type Template []struct {
ContactID int `json:"contactId"`
Email string `json:"email"`
MarkerName string `json:"markerName"`
DataType string `json:"dataType"`
Value string `json:"value"`
DateEntered string `json:"dateEntered"`
}
或
由于“value”键的值可能是任何类型的,因此您应该为该字段使用类型
接口{}
。这是空接口,它匹配实现至少零个方法的任何类型,即任何类型
因此,您可以使用以下类型:
type Contact struct {
ContactId int `json:"contactId"`
Email string `json:"email"`
MarkerName string `json:"markerName"`
DataType string `json:"dataType"`
Value interface{} `json:"value"`
DateEntered string `json:"dateEntered"`
}
查看此图。您可以使
值
字段具有一种类型的接口{}
。。。。
type Contact struct {
ContactId int `json:"contactId"`
Email string `json:"email"`
MarkerName string `json:"markerName"`
DataType string `json:"dataType"`
Value interface{} `json:"value"`
DateEntered string `json:"dateEntered"`
}