我在调用JSON.stringify之后发送这种数组
{
"世": 1,
"界": 1,
"最": 1,
"強": 1
}
但是在使用json.NewDecoder.Decode时遇到问题,我的struct是错误的吗?
type text struct {
Text map[string]int
}
我也无法将数据发送回前端,如何将数据转换回[]字节,还是有另一种方法可以将json发送回前端?
func PostHandler(w http.ResponseWriter, r *http.Request){
log.Println("post start")
if r.Method != "POST" {
log.Println("in post but early return")
http.NotFound(w, r)
return
}
decoder := json.NewDecoder(r.Body)
var t text
err := decoder.Decode(&t)
if err != nil {
log.Println("I tried")
log.Println(r.Body)
}
log.Println(t.Text)
//w.Write([]byte(t.Text)) //throws conversion error
}
(我试图在前端和后端之间来回发送数据,以便在继续前进和扩展之前降低基础知识)
此外,从日志中打印的是
post start
map[]
答案 0 :(得分:3)
将JSON值直接解码为map[string]int
。地图对应于JSON值中的一个对象。
decoder := json.NewDecoder(r.Body)
var t map[string]int
err := decoder.Decode(&t)
if err != nil {
log.Println("I tried")
log.Println(r.Body)
}
log.Println(t)