@Override public Object deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final JsonToken curr = jp.getCurrentToken(); if ((curr == JsonToken.VALUE_STRING) || (curr == JsonToken.FIELD_NAME)) { final String name = jp.getText(); if ("".equals(name)) { return null; } } return super.deserialize(jp, ctxt); } }
protected Enum<?> _deserializeOther(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonToken curr = jp.getCurrentToken(); // Issue#381 if (curr == JsonToken.START_ARRAY && ctxt.isEnabled(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)) { jp.nextToken(); final Enum<?> parsed = deserialize(jp, ctxt); curr = jp.nextToken(); if (curr != JsonToken.END_ARRAY) { throw ctxt.wrongTokenException(jp, JsonToken.END_ARRAY, "Attempted to unwrap single value array for single '" + _resolver.getEnumClass().getName() + "' value but there was more than a single value in the array"); } return parsed; } throw ctxt.mappingException(_resolver.getEnumClass()); }
protected Enum<?> _deserializeOther(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonToken curr = jp.getCurrentToken(); // Issue#381 if (curr == JsonToken.START_ARRAY && ctxt.isEnabled(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)) { jp.nextToken(); final Enum<?> parsed = deserialize(jp, ctxt); curr = jp.nextToken(); if (curr != JsonToken.END_ARRAY) { throw ctxt.wrongTokenException(jp, JsonToken.END_ARRAY, "Attempted to unwrap single value array for single '" + _resolver.getEnumClass().getName() + "' value but there was more than a single value in the array"); } return parsed; } throw ctxt.mappingException(_resolver.getEnumClass()); }