protected void reportWrongToken(JsonParser parser, DeserializationContext context, JsonToken exp, String unit) throws IOException { throw context.wrongTokenException(parser, JsonToken.VALUE_NUMBER_INT, "Expected " + exp.name() + " for '" + unit + "' of " + handledType().getName() + " value"); }
protected <BOGUS> BOGUS _reportWrongToken(DeserializationContext context, JsonToken exp, String unit) throws IOException { context.reportWrongTokenException((JsonDeserializer<?>)this, exp, "Expected %s for '%s' of %s value", exp.name(), unit, handledType().getName()); return null; }
private static boolean isValueToken( @Nonnull JsonToken inToken ) { return inToken.name().startsWith( "VALUE_" ); }
private List<?> readKeyedMapOf(Class<?> type, JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { if (jp.getCurrentToken() == JsonToken.START_OBJECT) { return KeyedListDeserializer.deserializeGeneric(jp, ctxt, type); } else { throw new JsonMappingException(jp, "Unable to parse keyed map of " + type.getName() + ": expect start object, but got: " + jp.getCurrentToken().name()); } }
protected <BOGUS> BOGUS _reportWrongToken(JsonParser parser, DeserializationContext context, JsonToken exp, String unit) throws IOException { throw context.wrongTokenException(parser, exp, String.format("Expected %s for '%s' of %s value", exp.name(), unit, handledType().getName())); }
protected <BOGUS> BOGUS _reportWrongToken(JsonParser parser, DeserializationContext context, JsonToken exp, String unit) throws IOException { throw context.wrongTokenException(parser, exp, String.format("Expected %s for '%s' of %s value", exp.name(), unit, handledType().getName())); }
protected void _reportWrongToken(JsonParser parser, DeserializationContext context, JsonToken exp, String unit) throws IOException { context.wrongTokenException(parser, JsonToken.VALUE_NUMBER_INT, "Expected " + exp.name() + " for '" + unit + "' of " + handledType().getName() + " value"); }
throw new JsonMappingException(jp, "Unable to deserialize keyed list: unexpected token: " + jp.getCurrentToken().name());
public T deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonToken token = jp.getCurrentToken(); if (token == JsonToken.START_OBJECT) { token = jp.nextToken(); } R reader = readerSupplier.get(); while (token != null && token != JsonToken.END_OBJECT) { if (token != JsonToken.FIELD_NAME) { APIParsingException.raise("Parsing of json failed. Expected to be at field name token but was " + token.name(), jp); } String name = jp.getCurrentName(); jp.nextToken(); Optional<FieldParser<R>> fieldParser = registry.getFieldParser(name); if (fieldParser.isPresent()) { fieldParser.get().parse(reader, jp, ctxt); } else { jp.skipChildren(); } token = jp.nextToken(); } return reader.validateAndBuild(); } }
@Override public BlobHierarchyListSegment deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { ArrayList<BlobItem> blobItems = new ArrayList<>(); ArrayList<BlobPrefix> blobPrefixes = new ArrayList<>(); JsonDeserializer<Object> blobItemDeserializer = ctxt.findRootValueDeserializer(ctxt.constructType(BlobItem.class)); JsonDeserializer<Object> blobPrefixDeserializer = ctxt.findRootValueDeserializer(ctxt.constructType(BlobPrefix.class)); for (JsonToken currentToken = p.nextToken(); !currentToken.name().equals("END_OBJECT"); currentToken = p.nextToken()) { // Get to the root element of the next item. p.nextToken(); if (p.getCurrentName().equals("Blob")) { blobItems.add((BlobItem)blobItemDeserializer.deserialize(p, ctxt)); } else if (p.getCurrentName().equals("BlobPrefix")) { blobPrefixes.add((BlobPrefix)blobPrefixDeserializer.deserialize(p, ctxt)); } } return new BlobHierarchyListSegment().withBlobItems(blobItems).withBlobPrefixes(blobPrefixes); } }
@Override public BlobHierarchyListSegment deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { ArrayList<BlobItem> blobItems = new ArrayList<>(); ArrayList<BlobPrefix> blobPrefixes = new ArrayList<>(); JsonDeserializer<Object> blobItemDeserializer = ctxt.findRootValueDeserializer(ctxt.constructType(BlobItem.class)); JsonDeserializer<Object> blobPrefixDeserializer = ctxt.findRootValueDeserializer(ctxt.constructType(BlobPrefix.class)); for (JsonToken currentToken = p.nextToken(); !currentToken.name().equals("END_OBJECT"); currentToken = p.nextToken()) { // Get to the root element of the next item. p.nextToken(); if (p.getCurrentName().equals("Blob")) { blobItems.add((BlobItem)blobItemDeserializer.deserialize(p, ctxt)); } else if (p.getCurrentName().equals("BlobPrefix")) { blobPrefixes.add((BlobPrefix)blobPrefixDeserializer.deserialize(p, ctxt)); } } return new BlobHierarchyListSegment().withBlobItems(blobItems).withBlobPrefixes(blobPrefixes); } }
private void _verifyScalarCoercion(DeserializationContext ctxt, JsonParser parser, String type) throws IOException { DeserializationFeature feat = DeserializationFeature.ALLOW_COERCION_OF_SCALARS; if (!ctxt.isEnabled(feat)) { ctxt.reportInputMismatch(getType(), "Cannot coerce JSON %s value (%s) into %s (enable `%s.%s` to allow)", parser.currentToken().name(), parser.readValueAsTree(), type, feat.getClass().getSimpleName(), feat.name()); } }
private void bufferJsonStruct(JsonToken first, JsonParser tokens, JsonToken firstToken) { int localNesting = 0; JsonToken t = first; Preconditions.checkArgument(first == firstToken, "Expected %s, got %s.", firstToken.name(), t); if (size() == 0) { updateNesting(t); } localNesting = storeAndPeekNesting(t, localNesting, tokens); while (localNesting > 0) { t = nextValue(tokens); localNesting = storeAndPeekNesting(t, localNesting, tokens); } }
@Override public IOSAlertData deserialize(JsonParser parser, DeserializationContext context) throws IOException { try { JsonToken token = parser.getCurrentToken(); switch (token) { case VALUE_STRING: String alert = parser.getText(); return IOSAlertData.newBuilder() .setBody(alert) .build(); case START_OBJECT: return deserializer.deserialize(parser, context); default: APIParsingException.raise(String.format("Unexpected alert token '%s'", token.name()), parser); } } catch ( APIParsingException e ) { throw e; } catch ( Exception e ) { APIParsingException.raise(e.getMessage(), parser); } return null; } }
JsonToken.VALUE_NUMBER_FLOAT, "Unexpected token (%s) when binding data into LngLatAlt", token.name()); return null;
private double extractDouble(JsonParser jp, DeserializationContext ctxt, boolean optional) throws IOException { JsonToken token = jp.nextToken(); if (token == null) { if (optional) return Double.NaN; else throw ctxt.mappingException("Unexpected end-of-input when binding data into LngLatAlt"); } else { switch (token) { case END_ARRAY: if (optional) return Double.NaN; else throw ctxt.mappingException("Unexpected end-of-input when binding data into LngLatAlt"); case VALUE_NUMBER_FLOAT: return jp.getDoubleValue(); case VALUE_NUMBER_INT: return jp.getLongValue(); case VALUE_STRING: return jp.getValueAsDouble(); default: throw ctxt.mappingException( "Unexpected token (" + token.name() + ") when binding data into LngLatAlt"); } } } }
private double extractDouble(JsonParser jp, DeserializationContext ctxt, boolean optional) throws IOException { JsonToken token = jp.nextToken(); if (token == null) { if (optional) return Double.NaN; else throw ctxt.mappingException("Unexpected end-of-input when binding data into LngLatAlt"); } else { switch (token) { case END_ARRAY: if (optional) return Double.NaN; else throw ctxt.mappingException("Unexpected end-of-input when binding data into LngLatAlt"); case VALUE_NUMBER_FLOAT: return jp.getDoubleValue(); case VALUE_NUMBER_INT: return jp.getLongValue(); case VALUE_STRING: return jp.getValueAsDouble(); default: throw ctxt.mappingException( "Unexpected token (" + token.name() + ") when binding data into LngLatAlt"); } } } }
JsonToken token = jp.getCurrentToken(); ze.appendMessage( "Position line=%d col=%d, token=%s", loc.getLineNr(), loc.getColumnNr(), token == null ? "No Token" : token.name() );
APIParsingException.raise(String.format("Unexpected badge token '%s'", token.name()), parser);
@Override public PushExpiry deserialize(JsonParser parser, DeserializationContext context) throws IOException { try { JsonToken token = parser.getCurrentToken(); switch (token) { case VALUE_STRING: return PushExpiry.newBuilder() .setExpiryTimeStamp(DATE_TIME_DESERIALIZER.deserialize(parser, context)) .build(); case VALUE_NUMBER_INT: int expiry = parser.getIntValue(); return PushExpiry.newBuilder() .setExpirySeconds(expiry) .build(); default: throw APIParsingException.raise(String.format("Unexpected token '%s' while parsing expiry time", token.name()), parser); } } catch ( APIParsingException e ) { throw e; } catch ( Exception e ) { throw APIParsingException.raise(e.getMessage(), parser); } } }