【发布时间】:2018-05-24 16:45:04
【问题描述】:
我有参数
id_user
phone_number
我想解码到我的结构
type User struct{
IDUser int `json:"id_user"`
PhoneNumber string `json:"phone_number"`
}
是否可以解码为结构?我使用大猩猩模式。我的代码:
func User(w http.ResponseWriter, r *http.Request){
var decoder = schema.NewDecoder()
var user User
if err := r.ParseForm(); err != nil {
fmt.Println(err)
}
err := decoder.Decode(&user, r.PostForm)
if err != nil {
fmt.Println(err)
}
respBody, err := json.Marshal(user)
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
w.Write(respBody)
}
我输入 id_user = 1 和 phone_number = qwerty。但结果是 id_user = 0 和 phone_number = ""。
【问题讨论】:
-
解码正文不是“查询参数”。把逻辑和语义搞清楚,剩下的就简单了。
-
在这里输出您实际收到的内容,一切可能都会变得清晰。您可能只是以错误的格式接收参数(作为 url 参数或以其他方式编码在正文中)。