From 789c5de8731fde4c764a75642706038403dc2bb7 Mon Sep 17 00:00:00 2001 From: Joe Bird Date: Fri, 2 May 2025 15:54:00 +0800 Subject: [PATCH] fix(marshaler): fix bug when marshal array (#4790) --- core/mapping/marshaler.go | 2 +- core/mapping/marshaler_test.go | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/core/mapping/marshaler.go b/core/mapping/marshaler.go index 65d295b1b..797cbdf26 100644 --- a/core/mapping/marshaler.go +++ b/core/mapping/marshaler.go @@ -142,7 +142,7 @@ func validateOptional(field reflect.StructField, value reflect.Value) error { if value.IsNil() { return fmt.Errorf("field %q is nil", field.Name) } - case reflect.Array, reflect.Slice, reflect.Map: + case reflect.Slice, reflect.Map: if value.IsNil() || value.Len() == 0 { return fmt.Errorf("field %q is empty", field.Name) } diff --git a/core/mapping/marshaler_test.go b/core/mapping/marshaler_test.go index b09411248..565b146f3 100644 --- a/core/mapping/marshaler_test.go +++ b/core/mapping/marshaler_test.go @@ -462,3 +462,15 @@ func TestMarshal_FromString(t *testing.T) { assert.Nil(t, err) assert.Equal(t, "10", m["json"]["age"].(string)) } + +func TestMarshal_Array(t *testing.T) { + v := struct { + H [1]int `json:"h,string"` + }{ + H: [1]int{1}, + } + + m, err := Marshal(v) + assert.Nil(t, err) + assert.Equal(t, "[1]", m["json"]["h"].(string)) +}