protected String _deserializeFromArray(JsonParser p, DeserializationContext ctxt) throws IOException { JsonToken t; if (ctxt.hasSomeOfFeatures(FEATURES_ACCEPT_ARRAYS)) { t = p.nextToken(); if (t == JsonToken.END_ARRAY) { if (ctxt.isEnabled(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT)) { return getNullValue(ctxt); } } if (ctxt.isEnabled(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)) { final String parsed = _parseString(p, ctxt); if (p.nextToken() != JsonToken.END_ARRAY) { handleMissingEndArrayForSingle(p, ctxt); } return parsed; } } else { t = p.getCurrentToken(); } return (String) ctxt.handleUnexpectedToken(_valueClass, t, p, null); } }