Джексон JSON неправильно сериализует Joda DateTime

У меня есть Joda DateTime в классе Order:

public class Order {
    private DateTime creationTime;
    ...
}

Я инициализировал свой преобразователь следующим образом:

mapper.configure(
        SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);

Когда я сериализую этот класс, я ожидаю увидеть сериализацию createTime в формате 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 в свой путь к классам в обоих случаях.

В некоторых онлайн-примерах я видел аннотацию к DateTime. Не знаю, нужно ли это, но пробовал всегда. См. Ниже:

public class Order {
    @JsonSerialize(using=DateTimeSerializer.class)
    private DateTime creationTime;
    ...
}

Кажется, это не имеет значения.

Спасибо.

P.S. Кто-нибудь знает, работает ли список рассылки Джексона? Я разместил этот вопрос в списке рассылки пользователей, но он не отображается в архивах. Последнее сообщение в архиве датировано 24 июня 2010 года.

6
задан Naresh 17 April 2011 в 16:17
поделиться