12345678910111213141516171819202122232425262728
  1. package utils
  2. import (
  3. "reflect"
  4. )
  5. // Map2Struct map 转 struct
  6. // 必须保证 s 为 stuct 指针
  7. func Map2Struct(m map[string]interface{}, s interface{}) {
  8. sv := reflect.ValueOf(s).Elem()
  9. for k, t := range m {
  10. f := sv.FieldByName(k)
  11. if !f.IsValid() {
  12. continue
  13. }
  14. switch v := t.(type) {
  15. case string:
  16. f.SetString(v)
  17. case float64:
  18. f.SetInt(int64(v))
  19. default:
  20. continue
  21. }
  22. }
  23. }