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)) +}