Ho un Joda DateTime in una classe Order:Jackson JSON non serializzare Joda DateTime correttamente
public class Order {
private DateTime creationTime;
...
}
ho inizializzato il mio mapper come segue:
mapper.configure(
SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
Quando ho serializzare questa classe, mi aspetto per vedere creationTime serializzato nel formato ISO-8601 come segue
{
"creationTime" : "2011-01-01T09:00:00.000-04:00"
}
Questo funziona perfettamente bene nel mio test unitario. Tuttavia, nella mia applicazione web, lo stesso identico codice sta serializzando tutti i campi 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"
}
}
}
Cosa mi manca? Sto includendo jackson-core-asl-1.7.6.jar e jackson-mapper-asl-1.7.6.jar nel mio classpath in entrambi i casi.
In alcuni esempi online ho visto un'annotazione su DateTime. Non so se questo è necessario, ma l'ho provato nell'eternità. Vedi sotto:
public class Order {
@JsonSerialize(using=DateTimeSerializer.class)
private DateTime creationTime;
...
}
Questo sembra non fare differenza.
Grazie.
P.S. Qualcuno sa se la mailing list di Jackson funziona? Ho postato questa domanda sulla mailing list dell'utente, ma non viene mostrata negli archivi. L'ultimo post in archivio è datata 24 giugno 2010.
La mailing list funziona, ma per qualche motivo gli archivi Codehaus non funzionano. – StaxMan
Grazie. Ho ricevuto molte risposte e aiuto dalla mailing list. – Naresh
Quindi, qual è la soluzione? –