将HTTP JSON正文响应转换为Go中的地图

问题描述 投票:4回答:2

我正在尝试将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 dictionary go httpresponse
2个回答
3
投票

http.Response.Bodyio.ReadCloser。所以用这个:


1
投票

*http.Response.Body的类型为io.ReadCloser。而且您没有使用正确的方法读取正文数据并将其转换为[]byte。尝试使用此:

© www.soinside.com 2019 - 2024. All rights reserved.