douxian7117 2016-11-26 02:24
浏览 75
已采纳

以JSON结构解组数组

Stackoverflow:

I've been struggling to unmarshal what I wouldn't consider an especially complex JSON response in GO. (which I'm fairly new to). Example below:

{ "eventId": "tevtNKIsHrFQTyyMeYDMc5jgQ1459184873000", 
  "sessionId": "1016Q-vnpnlQwCiLiyH7e_cNg", 
  "targets": 
     [ { "id": "00u34k73otQGIAFUALPR", "displayName": "okta admin", "login":       "oktaadmin@okta.com", "objectType": "User" } ] }

I tried representing this as an array of structs, but it never seems to connect.

I put my code on the GO Lang playground, if anyone can take a look I'd be very appreciative.

https://play.golang.org/p/TVYeYe7e_I

  • 写回答

3条回答 默认 最新

  • dongwu9972 2016-11-26 02:54
    关注

    For big json documents I recommend you to use this tool: https://mholt.github.io/json-to-go/

    You will get something like:

    type AutoGenerated struct {
        EventID   string    `json:"eventId"`
        SessionID string    `json:"sessionId"`
        RequestID string    `json:"requestId"`
        Published time.Time `json:"published"`
        Action    struct {
            Message    string   `json:"message"`
            Categories []string `json:"categories"`
            ObjectType string   `json:"objectType"`
            RequestURI string   `json:"requestUri"`
        } `json:"action"`
        Actors []struct {
            ID          string `json:"id"`
            DisplayName string `json:"displayName"`
            Login       string `json:"login,omitempty"`
            ObjectType  string `json:"objectType"`
            IPAddress   string `json:"ipAddress,omitempty"`
        } `json:"actors"`
        Targets []struct {
            ID          string `json:"id"`
            DisplayName string `json:"displayName"`
            Login       string `json:"login"`
            ObjectType  string `json:"objectType"`
        } `json:"targets"`
    }
    

    Full example: https://play.golang.org/p/Q8PwwtS_QZ

    Also you can always start with a map[string]interface{} instead of a struct.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?