Golang中如何处理POST上来的数组数据

表单中有一个数组参数:

<input name="P[a]" value=1 type="text"/>
<input name="P[b]" value=2 type="text"/>
.....
<input name="P[x]" value=n type="text"/>

其实x是不定的,每次请求可能会不一样。 这个表单提交后PHP来处理就是得到一个名为P的map, 但是用golang怎么处理?
Request.PostFormValue, Request.FormValue 返回的是string类型, 直接用FormValue("P")得到的是一个空字符串,要用FormValue("P[x]")这样才行,现在的问题是:x是不定的,如何才能优雅地获取到它的参数??

阅读 13.7k
4 个回答

数据存放于Request的PostForm中,类型为url.Values,其实就是一个map.如果你想获得P开头的数据,需要自己处理.

func (r *Request) PostFormValue(key string) string {
    if r.PostForm == nil {
        r.ParseMultipartForm(defaultMaxMemory)
    }
    if vs := r.PostForm[key]; len(vs) > 0 {
        return vs[0]
    }
    return ""
}
新手上路,请多包涵

golang的问题从来都是有人问没人答, 难道这语言真的要没落了吗

url.Values{
"account[user]":{account.User},
"account[password]":{account.Password},
}

所以楼主有答案了吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题