Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@dmorgantini
Created November 20, 2012 11:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dmorgantini/4117302 to your computer and use it in GitHub Desktop.
Save dmorgantini/4117302 to your computer and use it in GitHub Desktop.
Joda Datetime with dropwizard (0.6.0-SNAPSHOT)
public class DateTimeDeserializer extends JsonDeserializer<DateTime> {
@Override
public DateTime deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
if (jp.getCurrentToken() == JsonToken.VALUE_NUMBER_INT) {
return new DateTime(jp.getLongValue());
}
throw ctxt.mappingException("Expected JSON Number");
}
}
public class DateTimeSerializer extends JsonSerializer<DateTime> {
@Override
public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeNumber(value.getMillis());
}
}
public class JodaDateTimeModule extends SimpleModule {
public JodaDateTimeModule() {
addDeserializer(DateTime.class, new DateTimeDeserializer());
addSerializer(DateTime.class, new DateTimeSerializer());
}
}
@Override
public void initialize(Bootstrap<RouterConfiguration> bootstrap) {
// ...
bootstrap.getObjectMapperFactory().registerModule(new JodaDateTimeModule());
// ...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment