使用包发出 HTTP 请求后http,我正在阅读响应: resp, _ := client.Do(request) defer resp.Body.Close() responseBody, _ := ioutil.ReadAll(resp.Body) log.Println("body", string(responseBody))响应是 JSON 格式,包含俄语字符,所以我在控制台中看到{"error_code":201,"error_name":"\u041f\u043e\u043b ... "}如何解码响应字节以便我看到可读消息?
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
Go 中的 JSON 解码器可以处理编码符号,您需要在 struct 或其他值中解组有效负载:
https://play.golang.org/p/Mt-phU4kxfy
package main
import (
"encoding/json"
"fmt"
)
func main() {
payload := []byte(`{"error_code":201,"error_name":"\u041f\u043e\u043b ... "}`)
var p interface{}
_ = json.Unmarshal(payload, &p)
fmt.Printf("%#v\n", p) // map[string]interface {}{"error_code":201, "error_name":"Пол ... "}
var e struct {
ErrorCode int `json:"error_code"`
ErrorName string `json:"error_name"`
}
_ = json.Unmarshal(payload, &e)
fmt.Println(e.ErrorCode, e.ErrorName) // 201 Пол ...
}
- 1 回答
- 0 关注
- 127 浏览
添加回答
举报
0/150
提交
取消