响应结构如下:
type Response struct {
Message string `json:"message"`
}
代码如下:
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("response Body:", string(body))
response := &Response{}
json.NewDecoder(resp.Body).Decode(response)
fmt.Println("response struct:", response)
输出如下:
response Body: {"Message":"success"}
response struct: &{}
正如我们所看到的,响应体字符串很好并且包含json strin。但是当我尝试将响应体解码为json时,我得到一个空结构。
我已经在结构中导出了Message字段,以便json包可以访问它。我还在这里缺少什么?
答案 0 :(得分:4)
如果您在JSON resp.Body
之前阅读了Decode
,那么它就没有要解码的输入。
仅限尝试 -
response := &Response{}
json.NewDecoder(resp.Body).Decode(response)
fmt.Println("response struct:", response)
答案 1 :(得分:0)
Go语言可以更灵活地使用JSON文档。在下面的示例中,您可以将JSON文档解码或解组为map变量。 json包的Unmarshal函数用于将JSON值解码为Go值。 Please refer the link which may also help you.