diff --git a/struct_utils/named_values_to_struct.go b/struct_utils/named_values_to_struct.go index 97861207876e14ebce9cace94dadc1d10576825a..a7dfeb1bbc4b68f678baac47ec04a2c4f011e0be 100644 --- a/struct_utils/named_values_to_struct.go +++ b/struct_utils/named_values_to_struct.go @@ -263,6 +263,10 @@ func unmarshalNamedValuesIntoStructPtr(prefix string, namedValues map[string][]s if structTypeField.Type.Kind() == reflect.Slice { // this param struct field is a slice, iterate over all specified values for i, fieldValue := range fieldValues { + if fieldValue == "[]" && structTypeField.Type.Elem().Kind() != reflect.String { + // empty array - do nothing + continue + } parsedValue, parseErr := unmarshalValue(fieldValue, structTypeField.Type.Elem()) if parseErr != nil { err = errors.Wrapf(parseErr, "invalid %s[%d]", fieldName, i)