private static ObjectMapper createCombinedObjectMapper() { final Pair combinedIntrospector = createJaxbJacksonAnnotationIntrospector(); final ObjectMapper result = new ObjectMapper(); result.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true); result.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true); result.setDeserializationConfig(result.getDeserializationConfig().withAnnotationIntrospector(combinedIntrospector)); result.setSerializationConfig(result.getSerializationConfig().withAnnotationIntrospector(combinedIntrospector)); return result; }
public void setMixInAnnotations(Class<?> target, Class<?> mixinSource) { mapper._deserializationConfig.addMixInAnnotations(target, mixinSource); mapper._serializationConfig.addMixInAnnotations(target, mixinSource); } });
/** * Method for changing state of an on/off deserialization feature for * this object mapper. *<p> * This is method is basically a shortcut method for calling * {@link DeserializationConfig#set} on the shared {@link DeserializationConfig} * object with given arguments. */ @SuppressWarnings("deprecation") public ObjectMapper configure(DeserializationConfig.Feature f, boolean state) { _deserializationConfig.set(f, state); return this; }
private <T> T deserialize(String json, Class<T> type) throws IOException { ObjectMapper mapper = new ObjectMapper().configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false) .enableDefaultTyping(ObjectMapper.DefaultTyping.OBJECT_AND_NON_CONCRETE); mapper.getDeserializationConfig().addMixInAnnotations(ExtMap.class, JsonExtMapMixIn.class); return mapper.readValue(json, type); } }
@Override public T deserialize(byte[] bytes) throws PropertyStoreException { ObjectMapper mapper = new ObjectMapper(); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); DeserializationConfig deserializationConfig = mapper.getDeserializationConfig(); deserializationConfig.set(DeserializationConfig.Feature.AUTO_DETECT_FIELDS, true); deserializationConfig.set(DeserializationConfig.Feature.AUTO_DETECT_SETTERS, true); deserializationConfig.set(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, true); try { T value = mapper.readValue(bais, _clazz); return value; } catch (Exception e) { LOG.error("Error during deserialization of bytes: " + new String(bytes), e); } return null; }
public static KnowledgePackageWrapper parseKnowledgePackageWrapper(String content){ try{ ObjectMapper mapper=new ObjectMapper(); mapper.getDeserializationConfig().withDateFormat(new SimpleDateFormat(Configure.getDateFormat())); KnowledgePackageWrapper wrapper=mapper.readValue(content, KnowledgePackageWrapper.class); wrapper.buildDeserialize(); return wrapper; }catch(Exception ex){ throw new RuleException(ex); } }
ObjectMapper mapper = new ObjectMapper(); SimpleModule module = new SimpleModule("SamzaModule", new Version(1, 0, 0, "")); mapper.getSerializationConfig().addMixInAnnotations(TaskModel.class, JsonTaskModelMixIn.class); mapper.getDeserializationConfig().addMixInAnnotations(TaskModel.class, JsonTaskModelMixIn.class); mapper.getSerializationConfig().addMixInAnnotations(ContainerModel.class, JsonContainerModelMixIn.class); mapper.getSerializationConfig().addMixInAnnotations(JobModel.class, JsonJobModelMixIn.class); mapper.getDeserializationConfig().addMixInAnnotations(JobModel.class, JsonJobModelMixIn.class);
public static ObjectMapper createObjectMapperWithIntroSpectors() { ObjectMapper mapper = new ObjectMapper(); AnnotationIntrospector primaryIntrospector = new JacksonAnnotationIntrospector(); AnnotationIntrospector secondaryIntrospector = new JaxbAnnotationIntrospector(); AnnotationIntrospector introspector = new AnnotationIntrospector.Pair(primaryIntrospector, secondaryIntrospector); mapper.getDeserializationConfig().withAnnotationIntrospector(introspector); mapper.getSerializationConfig().withAnnotationIntrospector(introspector); return mapper; }
public JacksonJsonProvider create(Iterable<? extends Module> modules) { ObjectMapper mapper = new ObjectMapper(); /* This is what MapperConfigurator would do to a default ObjectMapper */ AnnotationIntrospector intr = AnnotationIntrospector.pair(new JacksonAnnotationIntrospector(), new JaxbAnnotationIntrospector()); mapper.setDeserializationConfig(mapper.getDeserializationConfig().withAnnotationIntrospector(intr)); mapper.setSerializationConfig(mapper.getSerializationConfig().withAnnotationIntrospector(intr)); /* In the absence of a specific annotation for @JsonSerialize(include), ignore null fields when serializing */ mapper.setSerializationInclusion(Inclusion.NON_NULL); for (Module module : modules) { mapper.registerModule(module); } mapper.registerModule(new GuavaIterableCapableModule()); JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider(mapper, JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS); // Make sure we only rely on annotations for de-/serialization provider.configure(SerializationConfig.Feature.AUTO_DETECT_GETTERS, false); provider.configure(SerializationConfig.Feature.AUTO_DETECT_FIELDS, false); provider.configure(DeserializationConfig.Feature.AUTO_DETECT_SETTERS, false); provider.configure(DeserializationConfig.Feature.AUTO_DETECT_FIELDS, false); return provider; } }
private ObjectMapper getDefaultMapper() { ObjectMapper mapper = new ObjectMapper(); DeserializationConfig deserializationConfig = mapper.getDeserializationConfig(); mapper.setDeserializationConfig(deserializationConfig.without(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES)); return mapper; } }
public static Object readJson(InputStream inputStream, TypeReference type) throws IOException { ObjectMapper om = ClientObjectMapper.createCustomMapper(); om.getDeserializationConfig().set(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); return om.readValue(inputStream, type); } }
StdDeserializerProvider deserializerProvider = new StdDeserializerProvider(deserializerFactory); mapper = new ObjectMapper(); mapper.setSerializerFactory(serializerFactory); mapper.setDeserializerProvider(deserializerProvider); AnnotationIntrospector secondary = new JaxbAnnotationIntrospector(); AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary); mapper.setDeserializationConfig(mapper.getDeserializationConfig().withAnnotationIntrospector(pair) .without(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES) .withDateFormat(StdDateFormat.getBlueprintISO8601Format())); mapper.setSerializationConfig(mapper.getSerializationConfig().withAnnotationIntrospector(pair) .withSerializationInclusion(JsonSerialize.Inclusion.NON_NULL) .withDateFormat(StdDateFormat.getBlueprintISO8601Format())); return mapper;
@Override protected ObjectMapper createInstance() throws Exception { ObjectMapper mapper = new ObjectMapper(); if(mixins!=null) { for (Map.Entry<Class<?>, Class<?>> entry : mixins.entrySet()) { mapper.getSerializationConfig().addMixInAnnotations(entry.getKey(), entry.getValue()); mapper.getDeserializationConfig().addMixInAnnotations(entry.getKey(), entry.getValue()); } } return mapper; }
@PostConstruct public void init() { // check if everything is configured. checkConfig(); log.info("Creating MailChimp integration client."); String url = buildServerURL(); log.info("Server URL is: {}", url); client = Client.create(); resource = client.resource(url); SerializationConfig s = m.getSerializationConfig(); s.setSerializationInclusion(Inclusion.NON_NULL); s.withDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); m.setSerializationConfig(s); DeserializationConfig d = m.getDeserializationConfig(); d.withDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); m.setDeserializationConfig(d); m.setDateFormat(new SimpleDateFormat("yyyy-MM-MM HH:mm:ss")); }
/** * Method for changing {@link AnnotationIntrospector} used by this * mapper instance for both serialization and deserialization * * @since 1.8 */ public ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai) { _serializationConfig = _serializationConfig.withAnnotationIntrospector(ai); _deserializationConfig = _deserializationConfig.withAnnotationIntrospector(ai); return this; }
@Override public Class findContentDeserializer(Annotated am) { if (am.hasAnnotation(ObjectId.class)) { JavaType type = deserializationConfig.getTypeFactory().constructType(am.getGenericType()); if (type.isCollectionLikeType()) { return findObjectIdDeserializer(type.containedType(0)); } else if (type.isMapLikeType()) { return findObjectIdDeserializer(type.containedType(1)); } } return null; }
@Override public JavaType resolveAbstractType(DeserializationConfig config, JavaType type) { /* 19-Feb-2011, tatu: Future plans may include calling of this method for all kinds * of abstract types. So as simple precaution, let's limit kinds of types we * will try materializa implementations for. */ /* We won't be handling any container types (Collections, Maps and arrays), * Throwables or enums. */ if (type.isContainerType() || type.isPrimitive() || type.isEnumType() || type.isThrowable()) { return null; } Class<?> cls = type.getRawClass(); /* [JACKSON-683] Fail on non-public classes, since we can't easily force * access to such classes (unless we tried to generate impl classes in that * package) */ if (!Modifier.isPublic(cls.getModifiers())) { if (isEnabled(Feature.FAIL_ON_NON_PUBLIC_TYPES)) { throw new IllegalArgumentException("Can not materialize implementation of "+cls+" since it is not public "); } return null; } // might want to skip proxies, local types too... but let them be for now: //if (intr.findTypeResolver(beanDesc.getClassInfo(), type) == null) { return config.constructType(materializeClass(config, cls)); }
@Override public void initialise() throws InitialisationException { super.initialise(); //Add shared mixins first for (Map.Entry<Class<?>, Class<?>> entry : getMixins().entrySet()) { getMapper().getDeserializationConfig().addMixInAnnotations(entry.getKey(), entry.getValue()); } for (Map.Entry<Class<?>, Class<?>> entry : deserializationMixins.entrySet()) { getMapper().getDeserializationConfig().addMixInAnnotations(entry.getKey(), entry.getValue()); } }
public JmsMessageListener() { // initialise the object mapper logger.info("JMS Listener initialising...."); mapper.getDeserializationConfig().set(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); ID_LIST.add("occurrenceID"); upsertList = new HashMap<String,List<Map<String,String>>>(); deleteList = new ArrayList<String>(); logger.info("JMS Listener about to start batch thread...."); new BatchThread().start(); logger.info("JMS Listener initialised."); }
throws JsonMappingException Class<?> cls = type.getRawClass(); TypeFactory tf = config.getTypeFactory(); JavaType[] params = tf.findTypeParameters(type, AtomicReference.class); JavaType referencedType;