From 8bf777428aa01b637ccd9e8ae2a75ad0e229fc82 Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 7 Aug 2025 22:21:52 +0200 Subject: [PATCH] better handling for pointer in AutoMap --- api.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/api.go b/api.go index 896ff6d..fa2892b 100644 --- a/api.go +++ b/api.go @@ -3,6 +3,7 @@ package structmapper import ( "encoding/json" "fmt" + "reflect" di "git.apihub24.de/admin/generic-di" "git.apihub24.de/admin/structmapper/utils" @@ -52,10 +53,14 @@ func SliceMap[TFrom any, TTo any](from []TFrom) []TTo { func AutoMap[TFrom any, TTo any](from TFrom) (TTo, error) { var result TTo + resultValue := reflect.ValueOf(&result).Elem() + if resultValue.Kind() == reflect.Ptr { + resultValue.Set(reflect.New(resultValue.Type().Elem())) + } str, err := json.Marshal(from) if err != nil { return result, err } - _ = json.Unmarshal(str, &result) - return result, nil + err = json.Unmarshal(str, resultValue.Addr().Interface()) + return result, err }