Example usage for com.fasterxml.jackson.databind.deser.std StdDeserializer StdDeserializer

List of usage examples for com.fasterxml.jackson.databind.deser.std StdDeserializer StdDeserializer

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.deser.std StdDeserializer StdDeserializer.

Prototype

protected StdDeserializer(Class<?> paramClass) 

Source Link

Usage

From source file:com.kaaprotech.satu.jackson.SatuDeserializers.java

@Override
public JsonDeserializer<?> findMapDeserializer(final MapType type, final DeserializationConfig config,
        BeanDescription beanDesc, final KeyDeserializer keyDeserializer,
        final TypeDeserializer elementTypeDeserializer, final JsonDeserializer<?> elementDeserializer)
        throws JsonMappingException {

    if (ImmutableMap.class.isAssignableFrom(type.getRawClass())) {
        return new StdDeserializer<Object>(type) {
            private static final long serialVersionUID = 1L;

            @Override//from  ww w  .  ja  va  2s.  co m
            public Object deserialize(JsonParser jp, DeserializationContext context) throws IOException {

                JsonToken t = jp.getCurrentToken();
                if (t == JsonToken.START_OBJECT) {
                    t = jp.nextToken();
                }
                if (t != JsonToken.FIELD_NAME && t != JsonToken.END_OBJECT) {
                    throw context.mappingException(type.getRawClass());
                }

                MutableMap<Object, Object> m = Maps.mutable.of();

                for (; jp.getCurrentToken() == JsonToken.FIELD_NAME; jp.nextToken()) {
                    // Pointing to field name
                    String fieldName = jp.getCurrentName();
                    Object key = (keyDeserializer == null) ? fieldName
                            : keyDeserializer.deserializeKey(fieldName, context);
                    t = jp.nextToken();

                    Object value;
                    if (t == JsonToken.VALUE_NULL) {
                        value = null;
                    } else if (elementDeserializer == null) {
                        value = jp.readValueAs(type.getContentType().getRawClass());
                    } else if (elementTypeDeserializer == null) {
                        value = elementDeserializer.deserialize(jp, context);
                    } else {
                        value = elementDeserializer.deserializeWithType(jp, context, elementTypeDeserializer);
                    }
                    m.put(key, value);
                }
                return m.toImmutable();
            }
        };
    }

    return super.findMapDeserializer(type, config, beanDesc, keyDeserializer, elementTypeDeserializer,
            elementDeserializer);
}

From source file:org.apache.streams.datasift.util.StreamsDatasiftMapper.java

public StreamsDatasiftMapper() {
    super();/*from  w  w w  .  j  a va 2s . c om*/
    registerModule(new SimpleModule() {
        {
            addDeserializer(DateTime.class, new StdDeserializer<DateTime>(DateTime.class) {
                @Override
                public DateTime deserialize(JsonParser jpar, DeserializationContext context)
                        throws IOException, JsonProcessingException {
                    DateTime result = null;
                    try {
                        result = DATASIFT_FORMATTER.parseDateTime(jpar.getValueAsString());
                    } catch (Exception e) {
                    }
                    if (result == null) {
                        try {
                            result = RFC3339Utils.getInstance().parseToUTC(jpar.getValueAsString());
                        } catch (Exception e) {
                        }
                    }
                    return result;
                }
            });
        }
    });

}

From source file:org.apache.streams.twitter.converter.StreamsTwitterMapper.java

public StreamsTwitterMapper() {
    super();//ww  w .  j  av a 2  s  . c o m
    registerModule(new SimpleModule() {
        {
            addDeserializer(DateTime.class, new StdDeserializer<DateTime>(DateTime.class) {
                @Override
                public DateTime deserialize(JsonParser jpar, DeserializationContext context)
                        throws IOException, JsonProcessingException {
                    DateTime result = null;
                    try {
                        result = TWITTER_FORMATTER.parseDateTime(jpar.getValueAsString());
                    } catch (Exception e) {
                    }
                    try {
                        result = RFC3339Utils.getInstance().parseToUTC(jpar.getValueAsString());
                    } catch (Exception e) {
                    }
                    return result;
                }
            });
        }
    });

}

From source file:eu.trentorise.opendata.commons.jackson.OdtCommonsModule.java

/**
 * Creates the module and registers all the needed serializers and
 * deserializers for Odt Commons objects
 *//*from ww  w  .  j ava 2 s.co m*/
public OdtCommonsModule() {
    super("odt-commons-jackson", readJacksonVersion(OdtCommonsModule.class));

    addSerializer(Dict.class, new StdSerializer<Dict>(Dict.class) {
        @Override
        public void serialize(Dict value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeObject(value.asMultimap());
        }
    });

    addDeserializer(Dict.class, new StdDeserializer<Dict>(Dict.class) {

        @Override
        public Dict deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
            TypeReference ref = new TypeReference<ImmutableListMultimap<Locale, String>>() {
            };
            return Dict.of((ImmutableListMultimap) jp.readValueAs(ref));
        }
    });

    setMixInAnnotation(LocalizedString.class, JacksonLocalizedString.class);

}

From source file:eu.trentorise.opendata.commons.jackson.TodCommonsModule.java

/**
 * Creates the module and registers all the needed serializers and
 * deserializers for Tod Commons objects
 */// w w  w.j  a  v  a2  s  .  c  om
public TodCommonsModule() {
    super("tod-commons-jackson", readJacksonVersion(TodCommonsModule.class));

    addSerializer(Dict.class, new StdSerializer<Dict>(Dict.class) {
        @Override
        public void serialize(Dict value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeObject(value.asMultimap());
        }
    });

    addDeserializer(Dict.class, new StdDeserializer<Dict>(Dict.class) {

        @Override
        public Dict deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
            TypeReference ref = new TypeReference<ImmutableListMultimap<Locale, String>>() {
            };
            return Dict.of((ImmutableListMultimap) jp.readValueAs(ref));
        }
    });

    addDeserializer(Locale.class, new LocaleDeserializer());

    setMixInAnnotation(LocalizedString.class, JacksonLocalizedString.class);

    setMixInAnnotation(Ref.class, JacksonRef.class);

}

From source file:com.kaaprotech.satu.jackson.SatuDeserializers.java

@Override
public JsonDeserializer<?> findCollectionDeserializer(final CollectionType type,
        final DeserializationConfig config, final BeanDescription beanDesc,
        final TypeDeserializer elementTypeDeserializer, final JsonDeserializer<?> elementDeserializer)
        throws JsonMappingException {

    if (ImmutableSet.class.isAssignableFrom(type.getRawClass())) {
        return new StdDeserializer<Object>(type) {
            private static final long serialVersionUID = 1L;

            @Override/*  w  w  w. j av a 2s.c  om*/
            public Object deserialize(JsonParser jp, DeserializationContext context) throws IOException {

                if (jp.isExpectedStartArrayToken()) {
                    JsonToken t;

                    MutableSet<Object> s = Sets.mutable.of();

                    while ((t = jp.nextToken()) != JsonToken.END_ARRAY) {
                        Object value;
                        if (t == JsonToken.VALUE_NULL) {
                            value = null;
                        } else if (elementDeserializer == null) {
                            value = jp.readValueAs(type.getContentType().getRawClass());
                        } else if (elementTypeDeserializer == null) {
                            value = elementDeserializer.deserialize(jp, context);
                        } else {
                            value = elementDeserializer.deserializeWithType(jp, context,
                                    elementTypeDeserializer);
                        }
                        s.add(value);
                    }
                    return s.toImmutable();
                }
                throw context.mappingException(type.getRawClass());
            }
        };
    }

    return super.findCollectionDeserializer(type, config, beanDesc, elementTypeDeserializer,
            elementDeserializer);
}