protected void init(ObjectMapper objectMapper) { SimpleModule module = new SimpleModule(); module.setSerializerModifier(modifier); module.addDeserializer(Event.class, eventDeserializer); module.addDeserializer(AckArgs.class, ackArgsDeserializer); objectMapper.registerModule(module); objectMapper.setSerializationInclusion(Include.NON_NULL); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); objectMapper.configure(SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN, true); objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); }
private ObjectMapper createObjectMapper(KeyFormatter keyFormatter, boolean compact, boolean wrapped) { ObjectMapper newMapper = new ObjectMapper(); SimpleModule jsonModule = new SimpleModule(); jsonModule.setSerializerModifier(EurekaJacksonJsonModifiers.createJsonSerializerModifier(keyFormatter, compact)); newMapper.registerModule(jsonModule); newMapper.setSerializationInclusion(Include.NON_NULL); newMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, wrapped); newMapper.configure(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED, false); newMapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, wrapped); newMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); newMapper.addMixIn(Applications.class, ApplicationsJsonMixIn.class); if (compact) { addMiniConfig(newMapper); } else { newMapper.addMixIn(InstanceInfo.class, InstanceInfoJsonMixIn.class); } return newMapper; }
@Bean public SimpleModule adminJacksonModule() { SimpleModule module = new SimpleModule(); module.addDeserializer(Registration.class, new RegistrationDeserializer()); module.setSerializerModifier(new RegistrationBeanSerializerModifier(new SanitizingMapSerializer( adminServerProperties.getMetadataKeysToSanitize()))); return module; }
@Override public void initialize(Bootstrap<?> bootstrap) { bootstrap.getObjectMapper().setDateFormat(new StdDateFormat()); bootstrap.getObjectMapper().registerModule(new JtsModule()); bootstrap.getObjectMapper().registerModule(new GraphHopperModule()); bootstrap.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL); // Because VirtualEdgeIteratorState has getters which throw Exceptions. // http://stackoverflow.com/questions/35359430/how-to-make-jackson-ignore-properties-if-the-getters-throw-exceptions bootstrap.getObjectMapper().registerModule(new SimpleModule().setSerializerModifier(new BeanSerializerModifier() { @Override public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyWriter> beanProperties) { return beanProperties.stream().map(bpw -> new BeanPropertyWriter(bpw) { @Override public void serializeAsField(Object bean, JsonGenerator gen, SerializerProvider prov) throws Exception { try { super.serializeAsField(bean, gen, prov); } catch (Exception e) { // Ignoring expected exception, see above. } } }).collect(Collectors.toList()); } })); }
/** * Gets a module wrapping this serializer as an adapter for the Jackson * ObjectMapper. * * @param mapper the object mapper for default serializations * @return a simple module to be plugged onto Jackson ObjectMapper. */ public static SimpleModule getModule(final ObjectMapper mapper) { SimpleModule module = new SimpleModule(); module.setSerializerModifier(new BeanSerializerModifier() { @Override public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer) { if (beanDesc.getBeanClass().getAnnotation(JsonFlatten.class) != null) { return new FlatteningSerializer(beanDesc.getBeanClass(), serializer, mapper); } return serializer; } }); return module; }
/** * Gets a module wrapping this serializer as an adapter for the Jackson * ObjectMapper. * * @param mapper the object mapper for default serializations * @return a simple module to be plugged onto Jackson ObjectMapper. */ public static SimpleModule getModule(final ObjectMapper mapper) { SimpleModule module = new SimpleModule(); module.setSerializerModifier(new BeanSerializerModifier() { @Override public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer) { if (beanDesc.getBeanClass().getAnnotation(JsonFlatten.class) != null) { return new FlatteningSerializer(beanDesc.getBeanClass(), serializer, mapper); } return serializer; } }); return module; }
protected void init(ObjectMapper objectMapper) { SimpleModule module = new SimpleModule(); module.setSerializerModifier(modifier); module.addDeserializer(Event.class, eventDeserializer); module.addDeserializer(AckArgs.class, ackArgsDeserializer); objectMapper.registerModule(module); objectMapper.setSerializationInclusion(Include.NON_NULL); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); objectMapper.configure(SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN, true); objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); }
public DefaultMethodSkippingModuleProvider() { module = new SimpleModule(); module.setSerializerModifier(new BeanSerializerModifier() { @Override public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyWriter> beanProperties) { return super.changeProperties(config, beanDesc, beanProperties.stream().filter(bpw -> { final AnnotatedMember jacksonMember = bpw.getMember(); final Member member = jacksonMember.getMember(); if (member instanceof Method) { final Method method = (Method) member; if (method.isDefault()) { try { // only exclude default methods if they are defined on interfaces from the core components String className = beanDesc.getBeanClass().getMethod(method.getName()).getDeclaringClass().getName(); return !className.startsWith(PACKAGE_CORE_COMPONENTS) || className.contains(PACKAGE_IMPL_INTERNAL); } catch (NoSuchMethodException e) { return false; } } } return true; }).collect(Collectors.toList())); } }); }
module.setSerializerModifier(new BeanSerializerModifier() { @Override public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer) {
module.setSerializerModifier(new BeanSerializerModifier() { @Override public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer) {
public PageModelAggregationValve(final ObjectMapper objectMapperInput, final Map<Class<?>, Class<?>> extraMixins) { objectMapper = objectMapperInput.registerModule(new SimpleModule().setSerializerModifier( new HippoBeanModelsSerializerModifier(metadataDecorators) )); HstBeansObjectMapperDecorator.decorate(objectMapper, extraMixins); }
public FilterableJsonSerializer(FilterableJsonSerializerConfig config) { NullArgumentChecker.DEFAULT.check(config, "config"); ObjectMapper mapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); module.setSerializerModifier(new FilterableBeanSerializerModifier(config)); mapper.registerModule(module); mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false); mapper.configure(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES, false); mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); mapper.configure(Feature.AUTO_CLOSE_TARGET, false); mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true); _mapper = mapper; }
@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 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; }
private ObjectMapper createObjectMapper(KeyFormatter keyFormatter, boolean compact, boolean wrapped) { ObjectMapper newMapper = new ObjectMapper(); SimpleModule jsonModule = new SimpleModule(); jsonModule.setSerializerModifier(EurekaJacksonJsonModifiers.createJsonSerializerModifier(keyFormatter, compact)); newMapper.registerModule(jsonModule); newMapper.setSerializationInclusion(Include.NON_NULL); newMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, wrapped); newMapper.configure(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED, false); newMapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, wrapped); newMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); newMapper.addMixIn(Applications.class, ApplicationsJsonMixIn.class); if (compact) { addMiniConfig(newMapper); } else { newMapper.addMixIn(InstanceInfo.class, InstanceInfoJsonMixIn.class); } return newMapper; }
@Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { if(mappingJackson2HttpMessageConverter != null){ ObjectMapper objectMapper = mappingJackson2HttpMessageConverter.getObjectMapper(); SimpleModule module = new SimpleModule("JacksonDictModule"); JacksonDictJsonModifier jacksonDictJsonModifier = new JacksonDictJsonModifier(); jacksonDictJsonModifier.setDictClient(dictClient); module.setSerializerModifier(jacksonDictJsonModifier); objectMapper.registerModule(module); } } }
public static void main(String[] args) throws JsonProcessingException { ObjectMapper objectMapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); module.setSerializerModifier(new JacksonDictJsonModifier()); DictVO dictItem = new DictVO(); dictItem.setCode("1231231"); dictItem.setParent("1231231"); dictItem.setName("1231231"); objectMapper.registerModule(module); System.out.println(objectMapper.writeValueAsString(dictItem)); } }
@Bean public SimpleModule adminJacksonModule() { SimpleModule module = new SimpleModule(); module.addDeserializer(Application.class, new ApplicationDeserializer()); module.setSerializerModifier(new ApplicationBeanSerializerModifier( new SanitizingMapSerializer(adminServerProperties.getMetadataKeysToSanitize()))) ; return module; }
public JsonBusinessDataSerializerImpl(ClassLoaderService classLoaderService) { classLoaderService.addListener(this); SimpleModule module = new SimpleModule(); module.setSerializerModifier(new EntityBeanSerializerModifier()); objectMapper.registerModule(module); objectMapper.addMixIn(Entity.class, EntityMixin.class); objectMapper.setAnnotationIntrospector(new EntityJacksonAnnotationIntrospector()); // Ensure Jackson use only fields to get properties. Reasons: // - entity can be wrapped in a javassist or hibernate proxy that have additional getters // - generated getters may not exactly match the field name (getANumber for aNumber field) objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); }
public JsonBusinessDataSerializerImpl(ClassLoaderService classLoaderService) { classLoaderService.addListener(this); SimpleModule module = new SimpleModule(); module.setSerializerModifier(new EntityBeanSerializerModifier()); objectMapper.registerModule(module); objectMapper.addMixIn(Entity.class, EntityMixin.class); objectMapper.setAnnotationIntrospector(new EntityJacksonAnnotationIntrospector()); // Ensure Jackson use only fields to get properties. Reasons: // - entity can be wrapped in a javassist or hibernate proxy that have additional getters // - generated getters may not exactly match the field name (getANumber for aNumber field) objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); }
/** * Provides the serialization configurations required by the Eureka Server. JSON * content exchanged with eureka requires a root node matching the entity being * serialized or deserialized. Achived with * {@link SerializationFeature.WRAP_ROOT_VALUE} and * {@link DeserializationFeature.UNWRAP_ROOT_VALUE}. * {@link PropertyNamingStrategy.SnakeCaseStrategy} is applied to the underlying * {@link ObjectMapper}. * * * @return */ public MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter() { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); converter.setObjectMapper(new ObjectMapper() .setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)); SimpleModule jsonModule = new SimpleModule(); jsonModule.setSerializerModifier(createJsonSerializerModifier());//keyFormatter, compact)); converter.getObjectMapper().registerModule(jsonModule); converter.getObjectMapper().configure(SerializationFeature.WRAP_ROOT_VALUE, true); converter.getObjectMapper().configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true); converter.getObjectMapper().addMixIn(Applications.class, ApplicationsJsonMixIn.class); converter.getObjectMapper().addMixIn(InstanceInfo.class, InstanceInfoJsonMixIn.class); // converter.getObjectMapper().addMixIn(DataCenterInfo.class, DataCenterInfoXmlMixIn.class); // converter.getObjectMapper().addMixIn(InstanceInfo.PortWrapper.class, PortWrapperXmlMixIn.class); // converter.getObjectMapper().addMixIn(Application.class, ApplicationXmlMixIn.class); // converter.getObjectMapper().addMixIn(Applications.class, ApplicationsXmlMixIn.class); return converter; }