diff --git a/reflect_struct_decoder.go b/reflect_struct_decoder.go index 355d2d11..b372fda1 100644 --- a/reflect_struct_decoder.go +++ b/reflect_struct_decoder.go @@ -519,16 +519,15 @@ func (decoder *generalStructDecoder) decodeOneField(ptr unsafe.Pointer, iter *It fieldBytes := iter.ReadStringAsSlice() field = *(*string)(unsafe.Pointer(&fieldBytes)) fieldDecoder = decoder.fields[field] - if fieldDecoder == nil && !iter.cfg.caseSensitive { - fieldDecoder = decoder.fields[strings.ToLower(field)] - } } else { field = iter.ReadString() fieldDecoder = decoder.fields[field] - if fieldDecoder == nil && !iter.cfg.caseSensitive { - fieldDecoder = decoder.fields[strings.ToLower(field)] - } } + + if fieldDecoder == nil && !iter.cfg.caseSensitive { + fieldDecoder = decoder.fields[strings.ToLower(field)] + } + if fieldDecoder == nil { msg := "found unknown field: " + field if decoder.disallowUnknownFields {