util.go 608 B

1234567891011121314151617181920212223242526272829303132333435
  1. package util
  2. import (
  3. "net/http"
  4. "strconv"
  5. )
  6. //数据类型转换
  7. func GetPostForm(r *http.Request) map[string]interface{} {
  8. val := map[string]interface{}{}
  9. for k, _ := range r.Form {
  10. if len(k) < 2 {
  11. continue
  12. }
  13. if k != "_id" {
  14. v := r.FormValue(k)
  15. switch k[:2] {
  16. case "s_": //string型
  17. val[k] = v
  18. case "l_": //int64位
  19. val[k], _ = strconv.ParseInt(v, 10, 64)
  20. case "i_": //int型
  21. val[k], _ = strconv.Atoi(v)
  22. default:
  23. if v == "true" || v == "false" {
  24. b, _ := strconv.ParseBool(v)
  25. val[k] = b
  26. } else {
  27. val[k] = v
  28. }
  29. }
  30. }
  31. }
  32. return val
  33. }