Example usage for com.fasterxml.jackson.databind.module SimpleModule setDeserializerModifier

List of usage examples for com.fasterxml.jackson.databind.module SimpleModule setDeserializerModifier

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.module SimpleModule setDeserializerModifier.

Prototype

public SimpleModule setDeserializerModifier(BeanDeserializerModifier mod) 

Source Link

Usage

From source file:com.microsoft.rest.serializer.FlatteningDeserializer.java

/**
 * Gets a module wrapping this serializer as an adapter for the Jackson
 * ObjectMapper.//w  ww  .  jav a  2 s .  c  om
 *
 * @param mapper the object mapper for default deserializations
 * @return a simple module to be plugged onto Jackson ObjectMapper.
 */
public static SimpleModule getModule(final ObjectMapper mapper) {
    SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new BeanDeserializerModifier() {
        @Override
        public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc,
                JsonDeserializer<?> deserializer) {
            if (beanDesc.getBeanClass().getAnnotation(JsonFlatten.class) != null) {
                return new FlatteningDeserializer(beanDesc.getBeanClass(), deserializer, mapper);
            }
            return deserializer;
        }
    });
    return module;
}

From source file:nebula.plugin.metrics.dispatcher.AbstractMetricsDispatcher.java

/**
 * Register Jackson module that maps enums as lowercase. Per http://stackoverflow.com/a/24173645.
 *///  w ww . j a  v a 2  s.  com
@SuppressWarnings("rawtypes")
private static void registerEnumModule(ObjectMapper mapper) {
    SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new BeanDeserializerModifier() {
        @Override
        public JsonDeserializer<Enum> modifyEnumDeserializer(DeserializationConfig config, final JavaType type,
                BeanDescription beanDesc, final JsonDeserializer<?> deserializer) {
            return new JsonDeserializer<Enum>() {
                @Override
                public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
                    @SuppressWarnings("unchecked")
                    Class<? extends Enum> rawClass = (Class<Enum<?>>) type.getRawClass();
                    return Enum.valueOf(rawClass, jp.getValueAsString().toUpperCase());
                }
            };
        }
    });
    module.addSerializer(Enum.class, new StdSerializer<Enum>(Enum.class) {
        @Override
        public void serialize(Enum value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeString(value.name().toLowerCase());
        }
    });
    mapper.registerModule(module);
}

From source file:org.hawkular.alerts.api.json.JsonUtil.java

private JsonUtil() {
    mapper = new ObjectMapper();

    SimpleModule simpleModule = new SimpleModule();
    simpleModule.setDeserializerModifier(new JacksonDeserializer.AlertThinDeserializer());
    mapperThin = new ObjectMapper();
    mapperThin.registerModule(simpleModule);
}

From source file:io.gravitee.management.rest.mapper.ObjectMapperResolver.java

public ObjectMapperResolver() {
    mapper = new GraviteeMapper();

    SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new BeanDeserializerModifier() {
        @Override//from   w w  w  .java2 s  .c  om
        public JsonDeserializer<Enum> modifyEnumDeserializer(DeserializationConfig config, final JavaType type,
                BeanDescription beanDesc, final JsonDeserializer<?> deserializer) {
            return new JsonDeserializer<Enum>() {
                @Override
                public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
                    Class<? extends Enum> rawClass = (Class<Enum<?>>) type.getRawClass();
                    return Enum.valueOf(rawClass, jp.getValueAsString().toUpperCase());
                }
            };
        }
    });
    module.addSerializer(Enum.class, new StdSerializer<Enum>(Enum.class) {
        @Override
        public void serialize(Enum value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeString(value.name().toLowerCase());
        }
    });
    mapper.registerModule(module);
}

From source file:org.jaqpot.core.data.serialize.JacksonMongoSerializer.java

public JacksonMongoSerializer() {
    this.mapper = new ObjectMapper();
    SimpleModule module = new SimpleModule();
    module.addSerializer(DataEntry.class, new DataEntrySerializer());
    mapper.registerModule(module.setDeserializerModifier(new DataEntryDeSerializeModifier()));
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}

From source file:de.upb.wdqa.wdvd.test.JsonNormalizerTest.java

private void testWDTKParsing(String filename) throws IOException {
    String jsonString = readFile(filename, StandardCharsets.UTF_8);

    SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new MapDeserializerModifier());
    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(module);/*from w w  w  .j  a  v  a2 s . c  o  m*/

    //      JsonNode root = mapper.readTree(jsonString);
    //      mapper.readValue(mapper.treeAsTokens(root), JacksonItemDocument.class);

    JacksonItemDocument itemDocument = mapper.readValue(jsonString, JacksonItemDocument.class);

    itemDocument.setSiteIri(Datamodel.SITE_WIKIDATA);
    itemDocument.toString(); // raises an exception if information is missing
}

From source file:com.logsniffer.config.BeanConfigFactoryManager.java

@SuppressWarnings("unchecked")
@PostConstruct/*  w  w  w  . ja  va 2  s. c  om*/
private void initJsonMapper() {
    final SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new BeanDeserializerModifier() {
        @Override
        public JsonDeserializer<?> modifyDeserializer(final DeserializationConfig config,
                final BeanDescription beanDesc, final JsonDeserializer<?> deserializer) {
            if (ConfiguredBean.class.isAssignableFrom(beanDesc.getBeanClass())) {
                return new ConfiguredBeanDeserializer(deserializer);
            }
            return deserializer;
        }
    });
    jsonMapper.registerModule(module);
    if (postConstructors != null) {
        for (final BeanPostConstructor<?> bpc : postConstructors) {
            mappedPostConstrucors.put(bpc.getClass(), bpc);
        }
    }

    // Register sub beans
    final ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);
    final AssignableTypeFilter filter4configBenas = new AssignableTypeFilter(ConfiguredBean.class);
    scanner.addIncludeFilter(filter4configBenas);

    for (final BeanDefinition bd : scanner.findCandidateComponents("com.logsniffer")) {
        try {
            final Class<? extends ConfiguredBean> clazz = (Class<? extends ConfiguredBean>) Class
                    .forName(bd.getBeanClassName());
            final JsonTypeName jsonNameAnnotation = clazz.getAnnotation(JsonTypeName.class);
            final List<String> names = new ArrayList<String>();
            configBeanNames.put(clazz, names);
            if (jsonNameAnnotation != null) {
                names.add(jsonNameAnnotation.value());
                if (jsonNameAnnotation.deprecated() != null) {
                    for (final String dep : jsonNameAnnotation.deprecated()) {
                        names.add(dep);
                    }
                }
            }
            names.add(clazz.getSimpleName());
            logger.debug("Registered JSON type {} for following names: {}", clazz, names);
        } catch (final ClassNotFoundException e) {
            logger.warn("Failed to register JSON type name for " + bd.getBeanClassName(), e);
        }
    }
}

From source file:org.springframework.data.rest.webmvc.json.PersistentEntityJackson2ModuleUnitTests.java

@Before
public void setUp() {

    KeyValueMappingContext mappingContext = new KeyValueMappingContext();
    mappingContext.getPersistentEntity(Sample.class);
    mappingContext.getPersistentEntity(SampleWithAdditionalGetters.class);
    mappingContext.getPersistentEntity(PersistentEntityJackson2ModuleUnitTests.PetOwner.class);

    this.persistentEntities = new PersistentEntities(Arrays.asList(mappingContext));

    ResourceProcessorInvoker invoker = new ResourceProcessorInvoker(
            Collections.<ResourceProcessor<?>>emptyList());

    NestedEntitySerializer nestedEntitySerializer = new NestedEntitySerializer(persistentEntities,
            new EmbeddedResourcesAssembler(persistentEntities, associations, mock(ExcerptProjector.class)),
            invoker);//w  w w .  j  a  va2s.  c  o  m
    OrderAwarePluginRegistry<EntityLookup<?>, Class<?>> lookups = OrderAwarePluginRegistry.create();

    SimpleModule module = new SimpleModule();

    module.setSerializerModifier(new AssociationOmittingSerializerModifier(persistentEntities, associations,
            nestedEntitySerializer, new LookupObjectSerializer(lookups)));
    module.setDeserializerModifier(new AssociationUriResolvingDeserializerModifier(persistentEntities,
            associations, converter, mock(RepositoryInvokerFactory.class)));

    this.mapper = new ObjectMapper();
    this.mapper.registerModule(module);
}

From source file:org.hawkular.alerts.api.JsonTest.java

@Test
public void jsonToAlertTest() throws Exception {
    String jsonAlert = "{\"tenantId\":\"jdoe\"," + "\"id\":\"trigger-test|1436964192878\","
            + "\"eventType\":\"ALERT\"," + "\"trigger\":{\"tenantId\":\"jdoe\"," + "\"id\":\"trigger-test\","
            + "\"name\":\"trigger-test\"," + "\"description\":\"trigger-test\","
            + "\"context\":{\"n1\":\"v1\",\"n2\":\"v2\"}" + "}," + "\"ctime\":1436964192878,"
            + "\"context\":{\"n1\":\"v1\",\"n2\":\"v2\"}," + "\"text\":\"trigger-test\"," + "\"evalSets\":["
            + "[{\"evalTimestamp\":1436964294055," + "\"dataTimestamp\":2," + "\"type\":\"THRESHOLD\","
            + "\"condition\":{\"tenantId\":\"jdoe\"," + "\"triggerId\":\"trigger-test\","
            + "\"triggerMode\":\"FIRING\"," + "\"type\":\"THRESHOLD\","
            + "\"conditionId\":\"my-organization-trigger-test-FIRING-1-1\"," + "\"dataId\":\"Default\","
            + "\"operator\":\"LTE\"," + "\"threshold\":50.0" + "}," + "\"value\":25.5},"
            + "{\"evalTimestamp\":1436964284965," + "\"dataTimestamp\":1," + "\"type\":\"AVAILABILITY\","
            + "\"condition\":{\"tenantId\":\"jdoe\"," + "\"triggerId\":\"trigger-test\","
            + "\"triggerMode\":\"FIRING\"," + "\"type\":\"AVAILABILITY\","
            + "\"conditionId\":\"my-organization-trigger-test-FIRING-1-1\"," + "\"dataId\":\"Default\","
            + "\"operator\":\"UP\"" + "}," + "\"value\":\"UP\"}]" + "]," + "\"severity\":\"MEDIUM\","
            + "\"status\":\"OPEN\"," + "\"ackTime\":0," + "\"ackBy\":null," + "\"resolvedTime\":0,"
            + "\"resolvedBy\":null," + "\"notes\":[{\"user\":\"user1\",\"ctime\":1,\"text\":\"The comment 1\"},"
            + "{\"user\":\"user2\",\"ctime\":2,\"text\":\"The comment 2\"}" + "],"
            + "\"context\":{\"n1\":\"v1\",\"n2\":\"v2\"}}";

    ObjectMapper mapper = new ObjectMapper();
    Alert alert = mapper.readValue(jsonAlert, Alert.class);
    assertNotNull(alert);//from   w w w.  j  av  a2 s  .co  m
    assertNotNull(alert.getEvalSets());
    assertEquals(1, alert.getEvalSets().size());
    assertEquals(2, alert.getEvalSets().get(0).size());
    assertTrue(alert.getContext() != null);
    assertTrue(alert.getContext().size() == 2);
    assertTrue(alert.getContext().get("n1").equals("v1"));
    assertTrue(alert.getContext().get("n2").equals("v2"));
    assertEquals("trigger-test", alert.getText());

    /*
    Testing thin deserializer
     */
    SimpleModule simpleModule = new SimpleModule();
    simpleModule.setDeserializerModifier(new JacksonDeserializer.AlertThinDeserializer());
    mapper = new ObjectMapper();
    mapper.registerModule(simpleModule);
    alert = mapper.readValue(jsonAlert, Alert.class);
    assertNull(alert.getEvalSets());
}