diff options
Diffstat (limited to 'src/main/java/com/fasterxml/jackson/databind/deser/std/StringArrayDeserializer.java')
-rw-r--r-- | src/main/java/com/fasterxml/jackson/databind/deser/std/StringArrayDeserializer.java | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/std/StringArrayDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/deser/std/StringArrayDeserializer.java index a348a4019..798a92624 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/std/StringArrayDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/std/StringArrayDeserializer.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.deser.ContextualDeserializer; import com.fasterxml.jackson.databind.deser.NullValueProvider; import com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider; import com.fasterxml.jackson.databind.jsontype.TypeDeserializer; +import com.fasterxml.jackson.databind.type.LogicalType; import com.fasterxml.jackson.databind.util.AccessPattern; import com.fasterxml.jackson.databind.util.ObjectBuffer; @@ -75,6 +76,11 @@ public final class StringArrayDeserializer _skipNullValues = NullsConstantProvider.isSkipper(nuller); } + @Override // since 2.12 + public LogicalType logicalType() { + return LogicalType.Array; + } + @Override // since 2.9 public Boolean supportsUpdate(DeserializationConfig config) { return Boolean.TRUE; @@ -144,7 +150,7 @@ public final class StringArrayDeserializer while (true) { String value = p.nextTextValue(); if (value == null) { - JsonToken t = p.getCurrentToken(); + JsonToken t = p.currentToken(); if (t == JsonToken.END_ARRAY) { break; } @@ -200,7 +206,7 @@ public final class StringArrayDeserializer */ String value; if (p.nextTextValue() == null) { - JsonToken t = p.getCurrentToken(); + JsonToken t = p.currentToken(); if (t == JsonToken.END_ARRAY) { break; } @@ -264,7 +270,7 @@ public final class StringArrayDeserializer while (true) { String value = p.nextTextValue(); if (value == null) { - JsonToken t = p.getCurrentToken(); + JsonToken t = p.currentToken(); if (t == JsonToken.END_ARRAY) { break; } @@ -304,12 +310,8 @@ public final class StringArrayDeserializer : _parseString(p, ctxt); return new String[] { value }; } - if (p.hasToken(JsonToken.VALUE_STRING) - && ctxt.isEnabled(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT)) { - String str = p.getText(); - if (str.length() == 0) { - return null; - } + if (p.hasToken(JsonToken.VALUE_STRING)) { + return _deserializeFromString(p, ctxt); } return (String[]) ctxt.handleUnexpectedToken(_valueClass, p); } |