为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Go 中通过 http 解组 JSON

如何在 Go 中通过 http 解组 JSON

Go
米琪卡哇伊 2021-06-18 13:20:52
我正在访问一个以以下形式返回 JSON 的 API:[{"UniqueID":1234, "DocID":5678}, {"UniqueID":5678, "DocID":9101112}]这个 API 是用 Go 编写的,示例输出是返回在浏览器中的显示方式。内容类型标头是 application/json我有以下代码来检索和解组它:    type UniqueIDDocID struct{        UniqueID int64 `json: "UniqueID"`        DocID int64 `json: "DocID"`    }    type UniqueIDDocIDCollection struct{        FullList []UniqueIDDocID    }    func retrieveUniqueIDByPublication(nodeid int64, publication string){        // call the API        //hgr := new(retrieval.HttpGetRetrieval)// endpoint is defined here - I have removed for privacy reasons        fmt.Println(endpoint) // the url which I know works        /*response, err := hgr.RequestResponse(endpoint)            if err != nil {                l4g.Warn("Could not retrieve the endpoint %s. Error: ", endpoint, err)                return            }            defer hgr.CloseResponse(response)            queryResult := hgr.ReadResponse(response)*/            client := new(http.Client)            request, err := http.NewRequest("GET", endpoint, nil)            if err != nil {                l4g.Warn("Could not retrieve the endpoint %s. Error: %v", endpoint, err)                return              }            request.Header.Set("Content-Type", "applicaiton/json")            response, err := client.Do(request)            if err != nil {                l4g.Warn("Could not retrieve the endpoint %s. Error: %v", endpoint, err)                return              }我收到“无法解组”消息,日志中的详细信息显示如下:[91 123 34 85 110 105 113 117 101 73 68 34 58 34 56 51     57 51 50 53 56 54 34 44 34 68 111 99 73 68 34 58 52 49 50 49 54 57 49 57 125 44 123 34 85 110 105 113 117 101]作为代表性样本。在这个解组步骤中我做错了什么?我想要的输出是 UniqueIDDocIDCollection 结构上有一个切片,其中包含类型 UniqueIDDocID 的项目,然后我可以从中获取 UniqueID 并将其写入行分隔文件。我一直在谷歌搜索并尝试了很多东西,但每次都是我得到的。如果您对源 JSON 也有任何建议,请分享这些建议,因为我可以在 API 中进行更改。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信