|
- package utils
-
- import "sort"
-
- func Struct2UrlParams(obj interface{}) string {
- var str = ""
- mapVal := Struct2Map(obj)
- var keys []string
- for key := range mapVal {
- keys = append(keys, key)
- }
- sort.Strings(keys)
- for _, key := range keys {
- str += key + "=" + AnyToString(mapVal[key]) + "&"
- }
- /*t := reflect.TypeOf(origin)
- v := reflect.ValueOf(origin)
-
- for i := 0; i < t.NumField(); i++ {
- tag := strings.ToLower(t.Field(i).Tag.Get("json"))
- if tag != "sign" {
- switch v.Field(i).Kind(){
- case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
- str += tag + "=" + utils.Int64ToStr(v.Field(i).Int()) + "&"
- break
- case reflect.String:
- str += tag + "=" + v.Field(i).String() + "&"
- break
- case reflect.Bool:
- str += tag + "=" + utils.BoolToStr(v.Field(i).Bool()) + "&"
- break
- case reflect.Float32, reflect.Float64:
- str += tag + "=" + utils.Float64ToStr(v.Field(i).Float())
- break
- case reflect.Array, reflect.Struct, reflect.Slice:
- str += ToUrlKeyValue(v.Field(i).Interface())
- default:
- break
- }
- }
- }*/
- return str
- }
|