0

我正在使用具有可能输出的 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 解组到它的数组?

4

2 回答 2

2

由于“value”键的值似乎可以是任何类型,因此您应该使用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"`
}

请参阅此工作示例

于 2019-03-18T06:42:25.413 回答
-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"`
}
于 2019-03-17T21:46:06.080 回答