使用Go我试图从我正在使用goreq library的服务器获取一些json。当我按如下方式打印出结果字符串时:
s, _ := res.Body.ToString()
fmt.Println(s)
我得到一个正确的json字符串:
{"success":true,"testnet":false,"message":"","result":{"btc":4014.16,"edp":4014.16},"msIn":1505820331492,"msOut":1505820331492}
因此,使用this json-to-go webservice我将此json消息转换为结构:
type Index struct {
Success bool `json:"success"`
Testnet bool `json:"testnet"`
Message string `json:"message"`
Result struct {
Btc float64 `json:"btc"`
Edp float64 `json:"edp"`
} `json:"result"`
MsIn int64 `json:"msIn"`
MsOut int64 `json:"msOut"`
}
我使用如下(implementation of FromJsonTo() here):
var item Index
res.Body.FromJsonTo(&item)
fmt.Println(item)
这只是打印出空的Index结构(虽然json str仍然是相同的):
{false false {0 0} 0 0}
知道我在这里做错了什么吗?
答案 0 :(得分:2)
通过致电res.Body.ToString()
,您可以阅读整个回复内容。接下来,当您调用res.Body.FromJsonTo()
时,正文为空,因此会返回EOF
错误。从代码中删除ToString()
会有所帮助。