Merge pull request #119229 from HirazawaUi/fix-convert-slice

Fix the converts an empty string to nil.
This commit is contained in:
Kubernetes Prow Robot 2023-07-11 23:39:11 -07:00 committed by GitHub
commit 95e915c428
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 2 deletions

View File

@ -231,7 +231,7 @@ func (c *fromUnstructuredContext) pushKey(key string) {
}
// FromUnstructuredWIthValidation converts an object from map[string]interface{} representation into a concrete type.
// FromUnstructuredWithValidation converts an object from map[string]interface{} representation into a concrete type.
// It uses encoding/json/Unmarshaler if object implements it or reflection if not.
// It takes a validationDirective that indicates how to behave when it encounters unknown fields.
func (c *unstructuredConverter) FromUnstructuredWithValidation(u map[string]interface{}, obj interface{}, returnUnknownFields bool) error {
@ -465,7 +465,7 @@ func sliceFromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) e
}
dv.SetBytes(data)
} else {
dv.Set(reflect.Zero(dt))
dv.Set(reflect.MakeSlice(dt, 0, 0))
}
return nil
}

View File

@ -91,6 +91,7 @@ type F struct {
G []int `json:"fg"`
H []bool `json:"fh"`
I []float32 `json:"fi"`
J []byte `json:"fj"`
}
type G struct {
@ -751,6 +752,10 @@ func TestUnrecognized(t *testing.T) {
data: "{\"ff\":[\"abc\"],\"fg\":[123],\"fh\":[true,false]}",
obj: &F{},
},
{
data: "{\"fj\":\"\"}",
obj: &F{},
},
{
// Invalid string data
data: "{\"fa\":123}",