我正在使用具有可能输出的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@example.com",
"markerName": "HasReadEntireMessage",
"dataType": "Boolean",
"value": true,
"dateEntered": "2013-01-03T18:02:00"
}]
我对“值”有疑问。结构应该是什么样子,它将允许此JSON解组到其数组?
答案 0 :(得分:2)
由于“值”键的值似乎可以为任何类型,因此应在此字段中使用类型interface{}
。这是一个空接口,它与实现至少零个方法的任何类型(任何类型)相匹配。
因此您可以使用以下类型:
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"`
}
请参阅此working example。
答案 1 :(得分:-1)
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"`
}
或
type Template []struct {
ContactID int `json:"contactId"`
Email string `json:"email"`
MarkerName string `json:"markerName"`
DataType string `json:"dataType"`
Value bool `json:"value"`
DateEntered string `json:"dateEntered"`
}