Microsoft 日历事件响应 Go 结构

一直试图将来自 Microsoft 的 Graph API 的响应解组为 Go 结构,但我不断收到错误“json: cannot unmarshal object into Go struct field .value.start of type []struct { DateTime string "json:"dateTime"";时区字符串 "json:"timeZone"" }"。


下面是我的结构:


type MicrosoftCalendarEventsResponse struct {   

    Value []struct {

        Etag    string `json:"@odata.etag"`

        Id      string `json:"id"`

        Subject string `json:"subject"`

        Start   []struct {

            DateTime string `json:"dateTime"`

            TimeZone string `json:"timeZone"`

        } `json:"start"`

        End []struct {

            DateTime string `json:"dateTime"`

            TimeZone string `json:"timeZone"`

        } `json:"end"`

        OriginalStartTimeZone string `json:"originalStartTimeZone"`

        OriginalEndTimeZone   string `json:"originalEndTimeZone"`

        ICalUId                    string `json:"iCalUId"`

        ReminderMinutesBeforeStart int    `json:"reminderMinutesBeforeStart"`

        IsReminderOn               bool   `json:"isReminderOn"`

    } `json:"value"`

}


您可以在其中清楚地看到给出错误的部分:


"start":{"dateTime":"2019-12-17T17:00:00.0000000","timeZone":"UTC"}

谁能告诉我我做错了什么?尝试了几个小时没有任何进展,我真的不知道出了什么问题。


Etag、Id、Subject 等其他内容正常工作。它只有嵌套的 [] 结构不起作用。


海绵宝宝撒
浏览 125回答 1
1回答

慕容3067478

Values为了捕获日历事件(复数),顶层是一个结构切片是有意义的。但是,在特定的Value中,您的Start和End字段也被定义为结构切片,这可能不是您想要的。尝试一个简单的结构:Start struct {        DateTime string `json:"dateTime"`        TimeZone string `json:"timeZone"`} `json:"start"`End struct {        DateTime string `json:"dateTime"`        TimeZone string `json:"timeZone"`} `json:"end"`
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go