bir bahar 3.1 MVC proje, ve sorun şu kontrol yöntemine gönderilen bir talep deserializing having:@JsonSerialize/@JsonDeserialize Spring MVC ile çağrılır
@RequestMapping(value="/deposit",method=RequestMethod.POST)
public void deposit(@RequestBody DepositRequest request)
{
}
istek nesnenin içeriyorsa
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;
}
}
Ve deserializer:
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);
}
}
Ben için özel bir seri hale/deserializer kayıtlı ettik Joda Para değeri,
Ancak, bu desperizer hiçbir zaman çağrılmaz. Aşağıdaki JSON'u gönderdiğimde, eşleştirmenin bulunamadığı varsayıldığını düşündüğüm bir 400 - Bad Request
yanıtı alıyorum.
{
"amount" : "30AUD"
}
Spring'i bu harita hakkında bir şekilde anlatmalı mıyım, yoksa ek açıklama yeterli mi? Serileştirmeyi işe almak için başka hangi adımları atmalıyım?
siz de deserializer sınıfını yapılandırmak zorunda mıyım? Joda-time ile aynı şeyi deniyorum http://stackoverflow.com/q/9484869/106261 – NimChimpsky