У меня есть Joda DateTime в классе Order:
public class Order {
private DateTime creationTime;
...
}
Я инициализировал свой маппер следующим образом:
mapper.configure(
SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
Когда я сериализую этот класс, я ожидаю увидеть сериализацию creationTime в формате ISO-8601 следующим образом
{
"creationTime" : "2011-01-01T09:00:00.000-04:00"
}
Это отлично работает в моем модульном тесте. Однако в моем веб-приложении один и тот же код сериализует все поля DateTime:
{
"creationTime" : {
"year" : 2011,
"dayOfMonth" : 17,
"dayOfWeek" : 7,
"era" : 1,
"dayOfYear" : 107,
"weekOfWeekyear" : 15,
"weekyear" : 2011,
"monthOfYear" : 4,
"yearOfEra" : 2011,
"yearOfCentury" : 11,
"centuryOfEra" : 20,
"millisOfSecond" : 590,
"millisOfDay" : 40311590,
"secondOfMinute" : 51,
"secondOfDay" : 40311,
"minuteOfHour" : 11,
"minuteOfDay" : 671,
"hourOfDay" : 11,
"millis" : 1303053111590,
"zone" : {
"fixed" : false,
"uncachedZone" : {
"cachable" : true,
"fixed" : false,
"id" : "America/New_York"
},
"id" : "America/New_York"
},
"chronology" : {
"zone" : {
"fixed" : false,
"uncachedZone" : {
"cachable" : true,
"fixed" : false,
"id" : "America/New_York"
},
"id" : "America/New_York"
}
}
}
Чего мне не хватает? Я включаю jackson-core-asl-1.7.6.jar и jackson-mapper-asl-1.7.6.jar в мой classpath в обоих случаях.
В некоторых онлайн-примерах я видел аннотацию на DateTime. Я не знаю, нужно ли это, но я пытался это сделать. Смотрите ниже:
public class Order {
@JsonSerialize(using=DateTimeSerializer.class)
private DateTime creationTime;
...
}
Кажется, это не имеет значения.
Спасибо.
P.S. Кто-нибудь знает, работает ли список рассылки Джексона? Я разместил этот вопрос в списке рассылки пользователей, но в архивах его нет. Последний пост в архиве датирован 24 июня 2010 года.