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 }