1. Struct转Map

      1. func StructToMap(obj interface{}) map[string]interface{}{
      2. obj1 := reflect.TypeOf(obj)
      3. obj2 := reflect.ValueOf(obj)
      4. var data = make(map[string]interface{})
      5. for i := 0; i < obj1.NumField(); i++ {
      6. data[obj1.Field(i).Name] = obj2.Field(i).Interface()
      7. }
      8. return data
      9. }

    2.Map转Struct

    1. func MapToStruct(){
    2. mapInstance := make(map[string]interface{})
    3. mapInstance["Name"] = "jqw"
    4. mapInstance["Age"] = 18
    5. var people People
    6. err := mapstructure.Decode(mapInstance, &people)
    7. if err != nil {
    8. fmt.Println(err)
    9. }
    10. fmt.Println(people)
    11. }

    3.map[string]string类型转换为map[string]interface{}

    1. var src []map[string]string
    2. var dest []map[string]interface{}
    3. for i := range src {
    4. m := src[i]
    5. n := make(map[string]interface{})
    6. for k,v := range m {
    7. n[k] = interface{}(v)
    8. }
    9. dest = append(dest, n)
    10. }

    3.