使用golang appengine时,解码JSON URL GET请求遇到了问题。
我是golang的新手,这可能只是一个简单的修复。
无法将bytes.Buffer转换为结构体。我的做法正确吗?
或者,我可以查询我想要的字段的字符串,但我认为那样做是错误的。
import {
"etc..."
}
.
.
// construct req.URL.String()
.
.
type Result struct {
Type string `json:"type"`
}
func home(w http.ResponseWriter, r *http.Request) {
.
.
.
ctx := appengine.NewContext(r)
client := urlfetch.Client(ctx)
resp, err := client.Get(req.URL.String())
buf := new(bytes.Buffer)
buf.ReadFrom(resp.Body)
fmt.Fprintln(w, buf) // successfully prints the buffer to w and confirms successful JSON request from remote server
var MyResult []Result
json.Unmarshal(buf.Bytes(), &MyResult)
for l := range MyResult {
fmt.Fprintln(w, MyResult[l].Type)
}
// Result: Empty...
// if I hard code the expected JSON string to a []byte array and Unmarshal I get a valid result from MyResult struct
var MyResult []Result; err := json.NewDecoder(resp.Body).Decode(&MyResult)
- Charlie Tumahaistring(buf.Bytes())
和Unmarshal
上的错误吗? - Sarath Sadasivan Pillai