List of usage examples for com.fasterxml.jackson.databind DeserializationContext wrongTokenException
public JsonMappingException wrongTokenException(JsonParser paramJsonParser, JsonToken paramJsonToken,
String paramString)
From source file:com.nesscomputing.jackson.datatype.CommonsLang3Module.java
private static void expect(JsonToken actual, JsonToken expected, JsonParser jp, DeserializationContext ctxt) throws JsonMappingException { if (actual != expected) { throw ctxt.wrongTokenException(jp, expected, "Wrong token"); }//from w ww. ja va 2 s. c o m }
From source file:com.basistech.rosette.dm.jackson.VersionCheckDeserializer.java
@Override public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { if (p.getCurrentToken() != JsonToken.VALUE_STRING) { throw ctxt.wrongTokenException(p, JsonToken.VALUE_STRING, "The value of 'version' must be a string"); }/*w w w . ja v a 2s . c o m*/ String version = p.readValueAs(String.class); String[] bits = version.split("\\."); if (bits.length < 3) { // allow for a fourth digit for some reason some day. throw ctxt.weirdStringException(version, String.class, "Versions must be of the form x.y.z"); } if (!"1".equals(bits[0])) { throw ctxt.weirdStringException(version, String.class, String.format("Incompatible ADM version %s", version)); } return version; }
From source file:com.basistech.rosette.dm.jackson.array.MorphoAnalysisListArrayDeserializer.java
@Override public List<MorphoAnalysis> deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { if (jp.getCurrentToken() != JsonToken.START_ARRAY) { throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "Expected array of items"); }/* w w w .j a v a 2 s .c o m*/ List<MorphoAnalysis> results = Lists.newArrayList(); MorphoAnalysisTypes type = MorphoAnalysisTypes.PLAIN; while (jp.nextToken() != JsonToken.END_ARRAY) { if (jp.getCurrentToken() == JsonToken.VALUE_NUMBER_INT) { type = MorphoAnalysisTypes.byOrdinal(jp.getIntValue()); jp.nextToken(); } results.add(jp.readValueAs(type.getMorphoAnalysisClass())); } return ImmutableList.copyOf(results); }
From source file:com.spotify.ffwd.filter.FilterDeserializer.java
@Override public Filter deserialize(JsonParser p, DeserializationContext ctx) throws IOException, JsonProcessingException { if (p.getCurrentToken() != JsonToken.START_ARRAY) { throw ctx.wrongTokenException(p, JsonToken.START_ARRAY, null); }/*from w w w .ja v a 2s .co m*/ final String id = p.nextTextValue(); final PartialDeserializer d = suppliers.get(id); if (d == null) { throw ctx.weirdStringException(id, Filter.class, String.format("Expected one of %s", suppliers.keySet())); } final Filter instance = d.deserialize(p, ctx); if (p.getCurrentToken() != JsonToken.END_ARRAY) { throw ctx.wrongTokenException(p, JsonToken.END_ARRAY, null); } return instance; }
From source file:javaslang.jackson.datatype.deserialize.CharSeqDeserializer.java
@Override public CharSeq deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { Object obj = deserializer.deserialize(p, ctxt); if (obj instanceof String) { return CharSeq.of((String) obj); } else {//from w ww .ja v a 2 s . co m throw ctxt.wrongTokenException(p, JsonToken.VALUE_STRING, "CharSeq can only be deserialized from String"); } }
From source file:org.dbrain.data.jackson.serializers.JacksonSerializationUtils.java
public static Value parseValue(JsonParser parser, DeserializationContext ctxt) throws IOException { JsonToken token = getToken(parser);/* w ww . j a va 2 s . c om*/ if (token != null) { Value result; switch (token) { case VALUE_STRING: result = Value.of(parser.getValueAsString()); break; case VALUE_NUMBER_FLOAT: result = Value.of(parser.getDoubleValue()); break; case VALUE_NUMBER_INT: result = Value.of(parser.getBigIntegerValue()); break; case VALUE_NULL: result = NullValueImpl.NULL; break; case VALUE_TRUE: result = Value.of(Boolean.TRUE); break; case VALUE_FALSE: result = Value.of(Boolean.FALSE); break; case START_OBJECT: { ValueMap values = ValueMap.newInstance(); while (parser.nextToken() == JsonToken.FIELD_NAME) { String key = parser.getCurrentName(); parser.nextToken(); Value v = parseValue(parser, ctxt); if (v == null) { throw ctxt.wrongTokenException(parser, JsonToken.START_OBJECT, "Expected Value"); } values.put(key, v); } if (getToken(parser) == JsonToken.END_OBJECT) { parser.clearCurrentToken(); } else { throw ctxt.wrongTokenException(parser, JsonToken.END_OBJECT, null); } result = values; } break; case START_ARRAY: { ValueList values = ValueList.newInstance(); while (parser.nextToken() != JsonToken.END_ARRAY) { Value v = parseValue(parser, ctxt); if (v == null) { throw ctxt.wrongTokenException(parser, JsonToken.START_OBJECT, "Expected Value"); } values.add(v); } if (getToken(parser) == JsonToken.END_ARRAY) { parser.clearCurrentToken(); } else { throw ctxt.wrongTokenException(parser, JsonToken.END_ARRAY, null); } result = values; } break; default: throw ctxt.wrongTokenException(parser, JsonToken.START_OBJECT, "Expected Value"); } return result; } else { return null; } }
From source file:com.basistech.rosette.dm.jackson.array.ListAttributeArrayDeserializer.java
@Override @SuppressWarnings("unchecked") public ListAttribute deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { if (jp.getCurrentToken() == JsonToken.START_ARRAY) { // this is what we expect. // we advance to be in the same place the 'else' will be -- the first FIELD_NAME. jp.nextToken();/* w w w . ja v a2 s . c o m*/ } else { throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "ListAttributeDeserializer called not array start."); } if (jp.getCurrentToken() != JsonToken.VALUE_STRING) { throw ctxt.mappingException("Expected VALUE_STRING for item type."); } String itemTypeKeyName = jp.getText(); KnownAttribute attribute = KnownAttribute.getAttributeForKey(itemTypeKeyName); if (attribute == null) { attribute = KnownAttribute.UNKNOWN; } Class<? extends BaseAttribute> itemClass = attribute.attributeClass(); ListAttribute.Builder<BaseAttribute> builder = new ListAttribute.Builder<>(attribute.attributeClass()); List<BaseAttribute> items = Lists.newArrayList(); if (jp.nextToken() != JsonToken.START_ARRAY) { throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "No array of values for list."); } // we just read the elements as we see them, while (jp.nextToken() != JsonToken.END_ARRAY) { // the START_ARRAY case, which is _normal_. Read the elements. items.add(jp.readValueAs(itemClass)); } builder.setItems(items); // we are still in the top-level array ... if (jp.nextToken() != JsonToken.START_OBJECT) { throw ctxt.wrongTokenException(jp, JsonToken.START_OBJECT, "No extended properties for list."); } Map<String, Object> props = jp.readValueAs(new TypeReference<Map<String, Object>>() { }); for (Map.Entry<String, Object> me : props.entrySet()) { builder.extendedProperty(me.getKey(), me.getValue()); } jp.nextToken(); // consume the END_OBJECT of the extended props return builder.build(); }
From source file:com.spotify.docker.client.jackson.UnixTimestampDeserializer.java
@Override public Date deserialize(final JsonParser parser, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final JsonToken token = parser.getCurrentToken(); if (token == JsonToken.VALUE_STRING) { final String str = parser.getText().trim(); return toDate(Long.parseLong(str)); } else if (token == JsonToken.VALUE_NUMBER_INT) { return toDate(parser.getLongValue()); }//from ww w .j a v a2 s.c om throw ctxt.wrongTokenException(parser, JsonToken.VALUE_STRING, "Expected a string or numeric value"); }
From source file:webby.commons.io.jackson.OffsetDateTimeDeserializer.java
@Override public OffsetDateTime deserialize(JsonParser parser, DeserializationContext context) throws IOException { switch (parser.getCurrentToken()) { case VALUE_STRING: String string = parser.getText().trim(); if (prepareFn != null) string = prepareFn.apply(string); if (string == null || string.length() == 0) return null; return OffsetDateTime.parse(string, formatter); }// ww w . j ava 2s . c o m throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string."); }
From source file:com.basistech.rosette.dm.jackson.ListAttributeDeserializer.java
@Override @SuppressWarnings("unchecked") public ListAttribute deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { if (jp.getCurrentToken() == JsonToken.START_OBJECT) { // this is what we expect. // we advance to be in the same place the 'else' will be -- the first FIELD_NAME. jp.nextToken();/*from www . j ava2s . c om*/ } else { /* In a full AnnotatedText, which is already doing some polymorphism shuffling, we end up here. */ /* We find a FIELD_NAME for the first field of the object */ if (jp.getCurrentToken() != JsonToken.FIELD_NAME) { throw ctxt.wrongTokenException(jp, JsonToken.START_OBJECT, "ListAttributeDeserializer called not at or FIELD_NAME of first field"); } /* We are at the field name, ready for the loop. */ } TokenBuffer tb = null; for (JsonToken t = jp.getCurrentToken(); t == JsonToken.FIELD_NAME; t = jp.nextToken()) { String name = jp.getCurrentName(); if ("itemType".equals(name)) { // gotcha! return deserialize(jp, ctxt, tb); } if (tb == null) { tb = new TokenBuffer(null, false); } tb.copyCurrentStructure(jp); } throw ctxt.mappingException("No itemType provided in a list"); }