You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
531 B

  1. package utils
  2. import (
  3. "fmt"
  4. "reflect"
  5. "strings"
  6. )
  7. // 利用反射将结构体转化为map
  8. func StructToMap(obj interface{}) map[string]interface{} {
  9. obj1 := reflect.TypeOf(obj)
  10. obj2 := reflect.ValueOf(obj)
  11. var data = make(map[string]interface{})
  12. for i := 0; i < obj1.NumField(); i++ {
  13. data[obj1.Field(i).Name] = obj2.Field(i).Interface()
  14. }
  15. return data
  16. }
  17. //将数组格式化为字符串
  18. func ArrayToString(array []interface{}) string {
  19. return strings.Replace(strings.Trim(fmt.Sprint(array), "[]"), " ", ",", -1)
  20. }