我用net/http做了一个简易的web后台,在处理网页提交表单的时候,发现表单数据类型是二维数组map[string][]string而不是map[string]string,经搜索,发现这样是为了处理表单中重复的key值。而我的应用除了web还有配套的客户端,客户端提交的数据就是map[string]string。我的后台封装了一个package用来验证用户提交数据的合法性,我设想的是这个package不仅能用在当前项目,今后也能作为一个接口用在其他项目,但这个package目前只设计了验证map[string]string的合法性,而没有考虑map[string][]string。
我的问题是:
1.为什么网页POST数据要设计成二维数组,除了处理重复key值之外还有没有什么别的考虑(因为我自己能控制我的页面不会出现重复key值,所以这个做法对我来讲意义不大)
2.为了让我用来验证用户数据的package能同时响应web和我的配套客户端,我应该把POST数据预处理成一维数组,还是改写package和客户端,统统使用二维数组。这两种做法应当如何取舍,给个建议。
谢谢回复
我试了下,就算是使用ajax,提交到后台的也不是map[string]string,例如
$.ajax({
method:"POST"
data: {
key1:value1,
key2:value2
......
}
})
这样得到的仍然是key1:[value1],key2:[value2],而不是key1:value1,key2:value2
是不是我应该写成这样:
$.ajax({
method:"POST",
data: {
json: "{"key":"value"}"
}
})
#2