package reflectext import ( "fmt" "gogs.mikescher.com/BlackForestBytes/goext/langext" "testing" "time" ) func TestConvertStructToMap(t *testing.T) { type tst struct { FieldA int FieldB string FieldC time.Time FieldD []float64 FieldE1 *int FieldE2 **int FieldE3 *int FieldE4 **int FieldE5 *int FieldE6 **int } value := tst{ FieldA: 123, FieldB: "hello", FieldC: time.Date(2020, 05, 12, 8, 30, 0, 0, time.UTC), FieldD: []float64{1, 2, 3, 4, 5, 6, 7}, FieldE1: nil, FieldE2: nil, FieldE3: langext.Ptr(12), FieldE4: langext.DblPtr(12), FieldE5: nil, FieldE6: langext.DblPtrNil[int](), } valueOut := ConvertStructToMap(value, ConvertStructToMapOpt{KeepJsonMarshalTypes: true}) fmt.Printf("%+v\n", valueOut) }