Il mio problema errore di deserializzazione è abbastanza semplice: Ho il seguente semplice classe:Jackson movimentazione
public class Foo {
private int id = -1;
public void setId(int _id){ this.id = _id; }
public int getId(){ return this.id; }
}
E io sto cercando di elaborare seguente JSON:
{
"id": "blah"
}
Ovviamente, c'è un problema qui ("blah" non può essere analizzato ad un int)
Precedentemente, Jackson genera qualcosa come org.codehaus.jackson.map.JsonMappingException: impossibile creare l'istanza di java.lang.Integer da String valore 'blah': non un valore intero valido
Sono d'accordo con questo, ma mi piacerebbe registrare qualcosa da qualche parte permettendo di ignorare questo tipo di errori di mappatura. Ho provato con un DeserializationProblemHandler registrato (vedi here) ma sembra funzionare solo su proprietà sconosciute e non su problemi di deserializzazione.
Avete qualche indizio su questo problema?
Perché vuoi ignorare questo errore? Mi piacerebbe restituire un codice HTTP di '400' per ogni client che prova a' PUT' una rappresentazione di risorse come questa :) –
Sto usando Jackson con Spring MVC e convalida del bean. Il problema è che Jackson si sta lamentando dei problemi di deserializzazione, prima di raggiungere il livello mvc di primavera .. quindi non posso inviare al mio cliente gli errori in modo coerente. –
Anche io (per uno) uso abbastanza spesso Jackson per fare un dump leggibile di un oggetto su un log. Essere in grado di notare i problemi di serializzazione e andare avanti è molto utile –