fmt_plus.go 822 字节
Newer Older
Mr.奇淼('s avatar
Mr.奇淼( 已提交
1
package utils
Mr.奇淼('s avatar
Mr.奇淼( 已提交
2

3 4 5 6 7
import (
	"fmt"
	"reflect"
	"strings"
)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
8

9 10 11 12 13 14
//@author: [piexlmax](https://github.com/piexlmax)
//@function: StructToMap
//@description: 利用反射将结构体转化为map
//@param: obj interface{}
//@return: map[string]interface{}

Mr.奇淼('s avatar
Mr.奇淼( 已提交
15
func StructToMap(obj interface{}) map[string]interface{} {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
16 17 18 19 20 21 22 23
	obj1 := reflect.TypeOf(obj)
	obj2 := reflect.ValueOf(obj)

	var data = make(map[string]interface{})
	for i := 0; i < obj1.NumField(); i++ {
		data[obj1.Field(i).Name] = obj2.Field(i).Interface()
	}
	return data
Mr.奇淼('s avatar
Mr.奇淼( 已提交
24
}
25

26 27 28 29 30 31
//@author: [piexlmax](https://github.com/piexlmax)
//@function: ArrayToString
//@description: 将数组格式化为字符串
//@param: array []interface{}
//@return: string

32 33 34
func ArrayToString(array []interface{}) string {
	return strings.Replace(strings.Trim(fmt.Sprint(array), "[]"), " ", ",", -1)
}