@JsonSerialize / @JsonDeserialize未使用Spring MVC调用
2022-09-02 21:42:05
我有一个Spring 3.1 MVC项目,但我在反序列化发送到以下控制器方法的请求时遇到问题:
@RequestMapping(value="/deposit",method=RequestMethod.POST)
public void deposit(@RequestBody DepositRequest request)
{
}
包含Joda Money值的请求对象,我已为其注册了自定义序列化程序/反序列化程序:
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;
}
}
反序列化器:
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);
}
}
但是,从不调用此反序列化程序。当我发送以下 JSON 时,我收到一个响应,我假设该响应指示未找到映射器。400 - Bad Request
{
"amount" : "30AUD"
}
我需要以某种方式告诉Spring这个映射器,还是注释就足够了?我应该采取哪些其他步骤来使反序列化正常工作?