1 回答
TA贡献1752条经验 获得超4个赞
您的代码有两个问题:
您正在对已经 json 编码的错误进行 json 编码。这意味着您正在对原始 json 字节进行 json 编码,这就是奇怪输出的原因。
您
Errormessage
的结构字段未导出。未导出的字段不会被 encoding/json 包编码。
要修复#1,你可以这样做:
func checkExistUser(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
fmt.Println("File Name :", r.FormValue("email"))
result, err := db.Query("SELECT * from userDetailsss")
if err != nil {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Header().Set("X-Content-Type-Options", "nosniff")
w.WriteHeader(400)
// use only Encode, no need to call json.Marshal
if err := json.NewEncoder(w).Encode(Errormessage{"Error in select"}); err != nil {
log.Println("failed to send reposnse:", err)
}
return
}
// ...
}
要修复 #2,您可以执行以下操作:
type Errormessage struct {
// export the field, i.e. change it to start with an upper case letter
Errormessage string `json:"errormessage"`
}
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报