我想编码输入和输出 x-www-form-urlencoding,类似于使用 json 或 xml 的方法。是否有现有的包来执行此操作,或者是否有任何文档说明如果不存在如何自己实现一个包?
最佳答案
gorilla/schema很受欢迎并且维护良好:
例如
func FormHandler(w http.RequestWriter, r *http.Request) {
err := r.ParseForm()
if err != nil {
// handle error
}
person := new(Person) // Person being a struct type
decoder := schema.NewDecoder()
err = decoder.Decode(person, r.Form)
if err != nil {
// handle error
}
}
goforms也是一种选择。
2015 年 5 月 23 日更新:
- gorilla/schema 仍然是我选择的最受支持的 map-to-struct 包之一,POST 表单值是一个常见的用例。
- goji/param也相当可靠,并具有许多相同的功能。
- mholt/binding以稍微复杂的 API 为代价(IMO)打包了更多功能。
我已经使用 gorilla/schema 几年了,没有遇到任何重大问题。我将它与 vala 结合使用用于在输入到 DB 之前验证输入(不是 nil、太短、太长等)。
关于go - 是否有一个包可以在 golang 中编码进出 x-www-form-urlencoded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22581248/