List of usage examples for com.fasterxml.jackson.databind.ser BeanSerializerModifier BeanSerializerModifier
BeanSerializerModifier
From source file:com.github.shyiko.jackson.module.advice.JsonAdviceModule.java
@Override public void setupModule(SetupContext context) { context.addBeanSerializerModifier(new BeanSerializerModifier() { @Override/*from w ww . jav a 2 s.co m*/ public com.fasterxml.jackson.databind.ser.BeanSerializerBuilder updateBuilder( SerializationConfig config, BeanDescription beanDesc, com.fasterxml.jackson.databind.ser.BeanSerializerBuilder builder) { JsonSerializerAdvice advice = beanDesc.getClassAnnotations().get(JsonSerializerAdvice.class); return advice != null ? new AdvisedBeanSerializerBuilder(builder, advice.value()) : builder; } }); context.addBeanDeserializerModifier(new BeanDeserializerModifier() { @Override public BeanDeserializerBuilder updateBuilder(DeserializationConfig config, BeanDescription beanDesc, BeanDeserializerBuilder builder) { JsonDeserializerAdvice advice = beanDesc.getClassAnnotations().get(JsonDeserializerAdvice.class); return advice != null ? new AdvisedBeanDeserializerBuilder(builder, advice.value()) : builder; } }); }
From source file:com.github.jonpeterson.jackson.module.interceptor.JsonInterceptorModule.java
public JsonInterceptorModule() { super("JsonInterceptor"); setDeserializerModifier(new BeanDeserializerModifier() { @Override/* www . j av a 2 s. co m*/ public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config, BeanDescription beanDescription, JsonDeserializer<?> deserializer) { if (deserializer instanceof StdDeserializer) { JsonInterceptors jsonInterceptors = beanDescription.getClassAnnotations() .get(JsonInterceptors.class); if (jsonInterceptors != null) { Class<? extends JsonInterceptor>[] interceptors = jsonInterceptors.beforeDeserialization(); if (interceptors.length > 0) return createInterceptingDeserializer((StdDeserializer) deserializer, interceptors); } } return deserializer; } // here just to make generics work without warnings private <T> JsonInterceptingDeserializer<T> createInterceptingDeserializer( StdDeserializer<T> deserializer, Class<? extends JsonInterceptor>[] interceptors) { return new JsonInterceptingDeserializer<T>(deserializer, interceptors); } }); setSerializerModifier(new BeanSerializerModifier() { @Override public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDescription, JsonSerializer<?> serializer) { if (serializer instanceof StdSerializer) { JsonInterceptors jsonInterceptors = beanDescription.getClassAnnotations() .get(JsonInterceptors.class); if (jsonInterceptors != null) { Class<? extends JsonInterceptor>[] interceptors = jsonInterceptors.afterSerialization(); if (interceptors.length > 0) return createInterceptingSerializer((StdSerializer) serializer, interceptors); } } return serializer; } // here just to make generics work without warnings private <T> JsonInterceptingSerializer<T> createInterceptingSerializer(StdSerializer<T> serializer, Class<? extends JsonInterceptor>[] interceptors) { return new JsonInterceptingSerializer<T>(serializer, interceptors); } }); }
From source file:com.logsniffer.app.CoreAppConfig.java
@Bean public ObjectMapper jsonObjectMapper() { final ObjectMapper jsonMapper = new ObjectMapper(); jsonMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); jsonMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); jsonMapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); jsonMapper.configure(Feature.ALLOW_SINGLE_QUOTES, true); jsonMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false); final SimpleModule module = new SimpleModule("FieldsMapping", Version.unknownVersion()); module.setSerializerModifier(new BeanSerializerModifier() { @Override/*from w w w.j av a 2 s. co m*/ public JsonSerializer<?> modifyMapSerializer(final SerializationConfig config, final MapType valueType, final BeanDescription beanDesc, final JsonSerializer<?> serializer) { if (FieldsMap.class.isAssignableFrom(valueType.getRawClass())) { return new FieldsMapMixInLikeSerializer(); } else { return super.modifyMapSerializer(config, valueType, beanDesc, serializer); } } }); jsonMapper.registerModule(module); return jsonMapper; }