@@ -185,7 +185,7 @@ public BooleanDeserializer(Class<Boolean> cls, Boolean nvl)
185
185
{
186
186
super (cls , nvl , Boolean .FALSE );
187
187
}
188
-
188
+
189
189
@ Override
190
190
public Boolean deserialize (JsonParser j , DeserializationContext ctxt ) throws IOException
191
191
{
@@ -439,14 +439,7 @@ public Character deserialize(JsonParser p, DeserializationContext ctxt)
439
439
case JsonTokenId .ID_NULL :
440
440
return (Character ) _coerceNullToken (ctxt , _primitive );
441
441
case JsonTokenId .ID_START_ARRAY :
442
- if (ctxt .isEnabled (DeserializationFeature .UNWRAP_SINGLE_VALUE_ARRAYS )) {
443
- p .nextToken ();
444
- final Character C = deserialize (p , ctxt );
445
- if (p .nextToken () != JsonToken .END_ARRAY ) {
446
- handleMissingEndArrayForSingle (p , ctxt );
447
- }
448
- return C ;
449
- }
442
+ return _deserializeFromArray (p , ctxt );
450
443
default :
451
444
}
452
445
return (Character ) ctxt .handleUnexpectedToken (_valueClass , p );
@@ -857,15 +850,7 @@ public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOEx
857
850
"not a valid number" );
858
851
}
859
852
case JsonTokenId .ID_START_ARRAY :
860
- if (ctxt .isEnabled (DeserializationFeature .UNWRAP_SINGLE_VALUE_ARRAYS )) {
861
- p .nextToken ();
862
- final Object value = deserialize (p , ctxt );
863
- if (p .nextToken () != JsonToken .END_ARRAY ) {
864
- handleMissingEndArrayForSingle (p , ctxt );
865
- }
866
- return value ;
867
- }
868
- break ;
853
+ return _deserializeFromArray (p , ctxt );
869
854
}
870
855
// Otherwise, no can do:
871
856
return ctxt .handleUnexpectedToken (_valueClass , p );
@@ -937,15 +922,7 @@ public BigInteger deserialize(JsonParser p, DeserializationContext ctxt) throws
937
922
}
938
923
return p .getDecimalValue ().toBigInteger ();
939
924
case JsonTokenId .ID_START_ARRAY :
940
- if (ctxt .isEnabled (DeserializationFeature .UNWRAP_SINGLE_VALUE_ARRAYS )) {
941
- p .nextToken ();
942
- final BigInteger value = deserialize (p , ctxt );
943
- if (p .nextToken () != JsonToken .END_ARRAY ) {
944
- handleMissingEndArrayForSingle (p , ctxt );
945
- }
946
- return value ;
947
- }
948
- break ;
925
+ return _deserializeFromArray (p , ctxt );
949
926
case JsonTokenId .ID_STRING : // let's do implicit re-parse
950
927
String text = p .getText ().trim ();
951
928
// note: no need to call `coerce` as this is never primitive
@@ -999,15 +976,7 @@ public BigDecimal deserialize(JsonParser p, DeserializationContext ctxt)
999
976
"not a valid representation" );
1000
977
}
1001
978
case JsonTokenId .ID_START_ARRAY :
1002
- if (ctxt .isEnabled (DeserializationFeature .UNWRAP_SINGLE_VALUE_ARRAYS )) {
1003
- p .nextToken ();
1004
- final BigDecimal value = deserialize (p , ctxt );
1005
- if (p .nextToken () != JsonToken .END_ARRAY ) {
1006
- handleMissingEndArrayForSingle (p , ctxt );
1007
- }
1008
- return value ;
1009
- }
1010
- break ;
979
+ return _deserializeFromArray (p , ctxt );
1011
980
}
1012
981
// Otherwise, no can do:
1013
982
return (BigDecimal ) ctxt .handleUnexpectedToken (_valueClass , p );
0 commit comments