@Override public Date read(JsonParser parser) throws IOException, JsonReadException { JsonLocation l = parser.getCurrentLocation(); try { char[] buffer = parser.getTextCharacters(); int offset = parser.getTextOffset(); int length = parser.getTextLength(); Date d = parseDropbox8601Date(buffer, offset, length); parser.nextToken(); return d; } catch (JsonParseException ex) { throw JsonReadException.fromJackson(ex); } catch (java.text.ParseException ex) { throw new JsonReadException( "bad date: \"" + ex.getMessage() + " at offset " + ex.getErrorOffset(), l); } }
public char[] deserialize(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext) { JsonToken localJsonToken1 = paramJsonParser.getCurrentToken(); if (localJsonToken1 == JsonToken.VALUE_STRING) { char[] arrayOfChar1 = paramJsonParser.getTextCharacters(); int i = paramJsonParser.getTextOffset(); int j = paramJsonParser.getTextLength(); char[] arrayOfChar2 = new char[j]; System.arraycopy(arrayOfChar1, i, arrayOfChar2, 0, j); return arrayOfChar2; } if (paramJsonParser.isExpectedStartArrayToken()) { StringBuilder localStringBuilder = new StringBuilder(64); while (true) { JsonToken localJsonToken2 = paramJsonParser.nextToken(); if (localJsonToken2 == JsonToken.END_ARRAY) break; if (localJsonToken2 != JsonToken.VALUE_STRING) throw paramDeserializationContext.mappingException(Character.TYPE); String str = paramJsonParser.getText(); if (str.length() != 1) throw JsonMappingException.from(paramJsonParser, "Can not convert a JSON String of length " + str.length() + " into a char element of char array"); localStringBuilder.append(str.charAt(0)); } return localStringBuilder.toString().toCharArray(); } if (localJsonToken1 == JsonToken.VALUE_EMBEDDED_OBJECT) { Object localObject = paramJsonParser.getEmbeddedObject(); if (localObject == null) return null; if ((localObject instanceof char[])) return (char[])localObject; if ((localObject instanceof String)) return ((String)localObject).toCharArray(); if ((localObject instanceof byte[])) return Base64Variants.getDefaultVariant().encode((byte[])localObject, false).toCharArray(); } throw paramDeserializationContext.mappingException(this._valueClass); }
/** * Method that gets textual contents of the current token using available methods, and ensures * results are consistent, before returning them */ protected String getAndVerifyText(JsonParser jp) throws IOException, JsonParseException { // Ok, let's verify other accessors int actLen = jp.getTextLength(); char[] ch = jp.getTextCharacters(); String str2 = new String(ch, jp.getTextOffset(), actLen); String str = jp.getText(); if (str.length() != actLen) { fail( "Internal problem (jp.token == " + jp.getCurrentToken() + "): jp.getText().length() ['" + str + "'] == " + str.length() + "; jp.getTextLength() == " + actLen); } assertEquals("String access via getText(), getTextXxx() must be the same", str, str2); return str; }