List of usage examples for com.fasterxml.jackson.databind JsonDeserializer deserialize
public abstract T deserialize(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext);
From source file:javaslang.jackson.datatype.deserialize.SerializableDeserializer.java
@Override public T deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { JsonDeserializer<Object> deserializer = ctxt.findRootValueDeserializer(ctxt.constructType(byte[].class)); byte[] bytes = (byte[]) deserializer.deserialize(p, ctxt); return deserialize(bytes); }
From source file:javaslang.jackson.datatype.deserialize.EitherDeserializer.java
@Override public Either<?, ?> deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { boolean right = false; Object value = null;// ww w.j a v a2 s . c o m int cnt = 0; for (JsonToken jsonToken = p.nextToken(); jsonToken != END_ARRAY; jsonToken = p.nextToken()) { cnt++; switch (cnt) { case 1: String def = (String) stringDeserializer.deserialize(p, ctxt); if ("right".equals(def)) { right = true; } else if ("left".equals(def)) { right = false; } else { throw ctxt.mappingException(javaType.getRawClass()); } break; case 2: JsonDeserializer<?> deserializer = right ? deserializer(1) : deserializer(0); value = (jsonToken != VALUE_NULL) ? deserializer.deserialize(p, ctxt) : deserializer.getNullValue(ctxt); break; } } if (cnt != 2) { throw ctxt.mappingException(javaType.getRawClass()); } return right ? Either.right(value) : Either.left(value); }
From source file:javaslang.jackson.datatype.deserialize.TupleDeserializer.java
@Override public Tuple deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { List<Object> list = new ArrayList<>(); int ptr = 0;/* w w w .jav a 2 s . co m*/ for (JsonToken jsonToken = p.nextToken(); jsonToken != END_ARRAY; jsonToken = p.nextToken()) { if (ptr >= deserializersCount()) { throw ctxt.mappingException(javaType.getRawClass()); } JsonDeserializer<?> deserializer = deserializer(ptr++); Object value = (jsonToken != VALUE_NULL) ? deserializer.deserialize(p, ctxt) : deserializer.getNullValue(ctxt); list.add(value); } return create(list, ctxt); }
From source file:net.nullschool.grains.jackson.datatype.AbstractBasicConstCollectionDeserializer.java
@Override public T deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonToken token = jp.getCurrentToken(); if (token != JsonToken.START_ARRAY) { throw ctxt.mappingException(collectionType.getRawClass()); }// w w w. j a v a 2s.co m if ((token = jp.nextToken()) == JsonToken.END_ARRAY) { return emptyResult(); } JsonDeserializer<?> ed = elementDeserializer; TypeDeserializer etd = elementTypeDeserializer; List<Object> elements = null; Object element; do { element = token != JsonToken.VALUE_NULL ? etd == null ? ed.deserialize(jp, ctxt) : ed.deserializeWithType(jp, ctxt, etd) : null; token = jp.nextToken(); if (elements == null) { if (token == JsonToken.END_ARRAY) { return resultOf(element); } elements = new ArrayList<>(); } elements.add(element); } while (token != JsonToken.END_ARRAY); return asResult(elements); }
From source file:javaslang.jackson.datatype.deserialize.ArrayDeserializer.java
@Override public T deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { JsonDeserializer<?> deserializer = deserializer(0); List<Object> list = new ArrayList<>(); if (!p.isExpectedStartArrayToken()) { throw ctxt.mappingException(valueType.getRawClass()); }//from w w w. jav a 2 s . c o m for (JsonToken jsonToken = p.nextToken(); jsonToken != END_ARRAY; jsonToken = p.nextToken()) { Object value = (jsonToken != VALUE_NULL) ? deserializer.deserialize(p, ctxt) : deserializer.getNullValue(ctxt); list.add(value); } return create(list, ctxt); }
From source file:org.emfjson.jackson.databind.deser.ResourceDeserializer.java
@Override public Resource deserialize(JsonParser jp, DeserializationContext ctxt, Resource intoValue) throws IOException { final Resource resource = getResource(ctxt, intoValue); if (resource == null) { throw new IllegalArgumentException("Invalid resource"); }//from w ww . j av a 2s. c o m final ReferenceEntries entries = new ReferenceEntries(); final EcoreTypeFactory ecoreType = new EcoreTypeFactory(); final ResourceSet resourceSet = resource.getResourceSet(); ctxt.setAttribute(RESOURCE, resource); ctxt.setAttribute(REFERENCE_ENTRIES, entries); ctxt.setAttribute(CACHE, new Cache()); ctxt.setAttribute(TYPE_FACTORY, ecoreType); ctxt.setAttribute(RESOURCE_SET, resourceSet); if (!jp.hasCurrentToken()) { jp.nextToken(); } final TypeFactory factory = TypeFactory.defaultInstance(); final JsonDeserializer<Object> deserializer = ctxt .findRootValueDeserializer(factory.constructType(EObject.class)); if (jp.getCurrentToken() == JsonToken.START_ARRAY) { while (jp.nextToken() != JsonToken.END_ARRAY) { EObject value = (EObject) deserializer.deserialize(jp, ctxt); if (value != null) { resource.getContents().add(value); } } } else if (jp.getCurrentToken() == JsonToken.START_OBJECT) { EObject value = (EObject) deserializer.deserialize(jp, ctxt); if (value != null) { resource.getContents().add(value); } } entries.resolve(resourceSet, uriHandler); return resource; }
From source file:net.nullschool.grains.jackson.datatype.AbstractBasicConstMapDeserializer.java
@Override public T deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonToken token = jp.getCurrentToken(); if (token == JsonToken.START_OBJECT) { token = jp.nextToken();//from ww w. j a v a 2 s. c om } else if (token != JsonToken.FIELD_NAME) { throw ctxt.mappingException(mapType.getRawClass()); } if (token == JsonToken.END_OBJECT) { return emptyResult(); } KeyDeserializer kd = keyDeserializer; JsonDeserializer<?> vd = valueDeserializer; TypeDeserializer vtd = valueTypeDeserializer; List<Object> keys = null; List<Object> values = null; Object key; Object value; do { String name = jp.getCurrentName(); key = kd == null ? name : kd.deserializeKey(name, ctxt); value = jp.nextToken() != JsonToken.VALUE_NULL ? vtd == null ? vd.deserialize(jp, ctxt) : vd.deserializeWithType(jp, ctxt, vtd) : null; token = jp.nextToken(); if (keys == null) { if (token == JsonToken.END_OBJECT) { return resultOf(key, value); } keys = new ArrayList<>(); values = new ArrayList<>(); } keys.add(key); values.add(value); } while (token != JsonToken.END_OBJECT); return asResult(keys, values); }
From source file:com.addthis.codec.jackson.CodecTypeDeserializer.java
@Nullable private Object _deserializeTypedFromArray(ArrayNode arrayNode, ObjectCodec objectCodec, DeserializationContext ctxt) throws IOException { if (idRes.isValidTypeId("_array")) { Config aliasDefaults = pluginMap.aliasDefaults("_array").toConfig(); String arrayField = aliasDefaults.getString("_primary"); try {//w ww . j a va 2 s. c o m ObjectNode objectFieldValues = (ObjectNode) objectCodec.createObjectNode(); Jackson.setAt(objectFieldValues, arrayNode, arrayField); ObjectNode aliasFieldDefaults = Jackson.configConverter(aliasDefaults.root()); Jackson.merge(objectFieldValues, aliasFieldDefaults); JsonDeserializer<Object> deser = _findDeserializer(ctxt, "_array"); JsonParser treeParser = objectCodec.treeAsTokens(objectFieldValues); treeParser.nextToken(); return deser.deserialize(treeParser, ctxt); } catch (IOException ex) { throw Jackson.maybeUnwrapPath(arrayField, ex); } } else { return null; } }
From source file:com.arpnetworking.jackson.BuilderDeserializerTest.java
@Test public void testWithoutNull() throws IOException { final TestFooBeanInterface expectedBean = TestFooBeanImpl.Builder.newInstance() .setFieldString(UUID.randomUUID().toString()).setFieldBoolean(Boolean.TRUE) .setFieldPrimitive(RANDOM_GENERATOR.nextInt()).setFieldBooleanPrimitive(false).build(); final String jsonString = "{\"fieldString\":\"" + expectedBean.getFieldString() + "\"" + ", \"fieldBoolean\":" + expectedBean.isFieldBoolean() + ", \"fieldPrimitive\":" + expectedBean.getFieldPrimitive() + ", \"fieldBooleanPrimitive\":" + expectedBean.isFieldBooleanPrimitive() + "}"; final JsonFactory jsonFactory = new JsonFactory(new ObjectMapper()); try (final JsonParser jsonParser = jsonFactory.createParser(jsonString)) { final JsonDeserializer<? extends TestFooBeanInterface> deserializer = BuilderDeserializer .of(TestFooBeanImpl.Builder.class); final TestFooBeanInterface actualBean = deserializer.deserialize(jsonParser, null); Assert.assertEquals(expectedBean, actualBean); }//from www .ja v a2s. c o m }
From source file:com.arpnetworking.jackson.BuilderDeserializerTest.java
@Test public void testWithNull() throws IOException { final TestFooBeanInterface expectedBean = TestFooBeanImpl.Builder.newInstance() .setFieldString(UUID.randomUUID().toString()).setFieldBoolean(Boolean.TRUE) .setFieldPrimitive(RANDOM_GENERATOR.nextInt()).setFieldBooleanPrimitive(false).setFieldNull(null) .build();//from ww w . j a va2s . co m final String jsonString = "{\"fieldString\":\"" + expectedBean.getFieldString() + "\"" + ", \"fieldBoolean\":" + expectedBean.isFieldBoolean() + ", \"fieldPrimitive\":" + expectedBean.getFieldPrimitive() + ", \"fieldBooleanPrimitive\":" + expectedBean.isFieldBooleanPrimitive() + ", \"fieldNull\":" + expectedBean.getFieldNull() + "}"; final JsonFactory jsonFactory = new JsonFactory(new ObjectMapper()); try (final JsonParser jsonParser = jsonFactory.createParser(jsonString)) { final JsonDeserializer<? extends TestFooBeanInterface> deserializer = BuilderDeserializer .of(TestFooBeanImpl.Builder.class); final TestFooBeanInterface actualBean = deserializer.deserialize(jsonParser, null); Assert.assertEquals(expectedBean, actualBean); } }