From 81a6ef97458360214e6df52474e76da87203b6ad Mon Sep 17 00:00:00 2001 From: yusing Date: Wed, 16 Apr 2025 15:15:22 +0800 Subject: [PATCH] fix: non-struct anonymous field unmarshaling --- pkg/json/struct.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/json/struct.go b/pkg/json/struct.go index 1d7415ed..eb066e0c 100644 --- a/pkg/json/struct.go +++ b/pkg/json/struct.go @@ -79,13 +79,15 @@ func flattenFields(t reflect.Type) []*field { f.marshal = appendMarshal } if structField.Anonymous { - if structField.Type.Kind() == reflect.Pointer { - f.inner = flattenFields(structField.Type.Elem()) + t := structField.Type + if t.Kind() == reflect.Pointer { + t = t.Elem() f.omitEmpty = true - } else { - f.inner = flattenFields(structField.Type) } - f.hasInner = len(f.inner) > 0 + if t.Kind() == reflect.Struct { + f.inner = flattenFields(t) + f.hasInner = len(f.inner) > 0 + } } fields = append(fields, f) if f.omitEmpty {