Я сериализую некоторые java.util.Dates в карте. Даты сериализуются в Longs (Джексон записывает значение Long
экземпляра Date
в строку JSON), однако они не десериализуются обратно в Date
экземпляры, а как Long
экземпляры.
Я бы хотел, чтобы Джексон десериализовал даты назад к объектам Date (а не отформатировал Strings или Longs), как мне этого добиться?
Map<String, Comparable<?>> change = new HashMap<String, Comparable<?>>();
change.put("DESCRIPTION", "LIBOR");
change.put("RATE", "1.8");
change.put("DATE", Util.newDate(2009, 7, 1)); // Returns a java.util.Date
Производит
{"DESCRIPTION":"LIBOR"},{"RATE":"1.8"},{"DATE":1246402800000}, ... }
Что нормально. Тем не менее, дата String десериализуется (раздувается) обратно в экземпляр java.lang.Long
, когда я хочу, чтобы это был экземпляр java.util.Date
- как и началось.
т.е. Map change
теперь содержит три записи; Описание как String
, Оценить как Float
и Дата как Long
.