Ho un progetto Spring MVC 3.1, e sto avendo problemi deserializzazione una richiesta inviata al seguente metodo controllore:@JsonSerialize/@JsonDeserialize non richiamato con Spring MVC
@RequestMapping(value="/deposit",method=RequestMethod.POST)
public void deposit(@RequestBody DepositRequest request)
{
}
La richiesta oggetto che contiene una valore Joda denaro, che ho registrato una consuetudine serializzatore/deserializzatore per:
public class DepositRequest {
private Money amount;
@JsonDeserialize(using=JodaMoneyDeserializer.class)
@JsonSerialize(using=JodaMoneySerializer.class)
public Money getAmount() {
return amount;
}
public void setAmount(Money amount) {
this.amount = amount;
}
}
E il deserializzatore:
public class JodaMoneyDeserializer extends JsonDeserializer<Money> {
@Override
public Money deserialize(JsonParser parser, DeserializationContext context)
throws IOException, JsonProcessingException {
String text = parser.getText();
return Money.parse(text);
}
}
Tuttavia, questo deserializzatore non viene mai richiamato. Quando invio il seguente JSON, ottengo una risposta 400 - Bad Request
, che presumo indichi che il mapper non è stato trovato.
Devo dire in qualche modo a Spring questo mapper o l'annotazione è sufficiente? Quali altri passaggi devo intraprendere per far funzionare la deserializzazione?
Avete configurare la classe deserializzatore come bene? Sto tentando lo stesso con joda-time http://stackoverflow.com/q/9484869/106261 – NimChimpsky