http获取get参数过滤
r.URL.Query()
localhost:3000/about?name=111&b...
这个可以获取到map类型的所有参数
map[11:[] bb:[121,11] name:[111]]
vars := r.URL.Query()
arr := map[string]interface{}{}
for k,v := range vars{
str := v[0]
if str != "" {
arr[k] = v[0]
}
}
fmt.Println(arr)
- 上述中可以简单地把有效参数获取整理到arrmap中
- 但是时机中如有地址参数用户可以随机更改,不一定都是我们需要的数据
- 所以我有如下更改
从中如果我们得知该路由下我们需要的参数只有name和age时,过滤其他字符,其中每个字段里面的max,type等等还没有写,这块我们可以把参数验证也加进去student := map[string]interface{}{} student["name"] = map[string]interface{}{"max": 11, "min": 2, "type": "int"} student["age"] = map[string]interface{}{"max": 11, "min": 2, "type": "int"} arr := map[string]interface{}{} for k, v := range vars { _, ok := student[k] if ok { str := &v[0] if *str != "" { arr[k] = *str } } } fmt.Println(arr)
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: