我正在尝试将HTTP JSON正文响应转换为Go中的map[string]interface{}
。>
这是我编写的代码:
func fromHTTPResponse(httpResponse *http.Response, errMsg string )(APIResponse, error){ temp, _ := strconv.Atoi(httpResponse.Status) var data map[string]interface{} resp, errResp := json.Marshal(httpResponse.Body) defer httpResponse.Body.Close() if errResp != nil { return APIResponse{}, errResp } err := json.Unmarshal(resp, &data) if err != nil { return APIResponse{}, err } return APIResponse{httpResponse.Status, data, (temp == OK_RESPONE_CODE), errMsg, map[string]interface{}{} }, nil }
我已成功连接到服务器。响应的主体包含JSON数据。运行代码后,数据指向
nil
,为什么呢?
我正在尝试将HTTP JSON正文响应转换为Go中的map [string] interface {}。这是我写的代码:func fromHTTPResponse(httpResponse * http.Response,errMsg string)(APIResponse,error){...
http.Response.Body
是io.ReadCloser
。所以用这个:
*http.Response.Body
的类型为io.ReadCloser
。而且您没有使用正确的方法读取正文数据并将其转换为[]byte
。尝试使用此: