我是 Golang 的菜鸟,试图创建 RestApi,它从邮递员那里获取请求并将其存储在 MYSQL 中。在尝试插入具有两列(名称和标题)但在插入数据库时一列始终为空的行时,请告诉我如何添加多个字段。func createPost(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") stmt, err := db.Prepare("INSERT INTO posts(name,title) VALUES(?,?)") if err != nil { panic(err.Error()) } body, err := ioutil.ReadAll(r.Body) if err != nil { panic(err.Error()) } keyVal := make(map[string]string) json.Unmarshal(body, &keyVal) name := keyVal["name"] title := keyVal["title"] _, err = stmt.Exec(name, title) if err != nil { panic(err.Error()) }}JSON Request :{ "name":"John" "title":"Engineer"}
2 回答
手掌心
TA贡献1942条经验 获得超3个赞
先检查Unmarshal错误,可能你的要求不对。
如果您正确发布,则您的 JSON 请求缺少逗号:
{
"name":"John" <<<<<<<< comma here
"title":"Engineer"
}
慕码人2483693
TA贡献1860条经验 获得超9个赞
首先使用以下函数转换您收到的 json -
func FromJSON(i interface{}, r io.Reader) error {
d := json.NewDecoder(r)
return d.Decode(i)
}
如果仍然有任何问题,那么问题可能在于发送请求时的逗号,如果您使用的是邮递员,则请求应该是 { "name":"John", "title":"Engineer", }
- 2 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消