0
将标准库URL.Query()直接映射到结构将会非常棒。将URL.Query(切片图)转换为结构golang
查询()返回一个地图等: 地图[A:[AAAA] B:[BBBB] C:[CCCC]]
的结构是这样的:
类型的事情结构{ 甲串 乙串 C字符串 }
*我不知道为什么URL.Query返回里面强硬的数组元素的地图。 (well ..我知道why但GET不可能有重复的参数)
将标准库URL.Query()直接映射到结构将会非常棒。将URL.Query(切片图)转换为结构golang
查询()返回一个地图等: 地图[A:[AAAA] B:[BBBB] C:[CCCC]]
的结构是这样的:
类型的事情结构{ 甲串 乙串 C字符串 }
*我不知道为什么URL.Query返回里面强硬的数组元素的地图。 (well ..我知道why但GET不可能有重复的参数)
正如@ mh-cbon gorilla schema指出的是这里的最终解决方案。
取而代之的是从URL属性中获取queryParams。
func handleRequest(w http.ResponseWriter, r *http.Request) {
queryString := r.URL.Query()
//...parsing the Values -> map[string][]string
}
大猩猩模式的方法是将r.PostForm
运送到解码功能。
func handleRequest(w http.ResponseWriter, r *http.Request) {
err := decoder.Decode(person, r.PostForm)
//...using reflect each struct's property can be called using
// the PostForm(url string, data url.Values) signature
fmt.Print(person.GoodJobGorilla)
}
GET不太可能会有重复的参数。在这种情况下,它被转换为一段值。你看过gorilla.schema包吗?我相信它可以完成这项工作。 –
在我的情况下,我会很好,并希望在重复的情况下解雇一个例外。我看了一眼gorilla.schema,太棒了!谢谢。 – Custodio