我有一个客户端发布到我的服务货币中,就像这样:
{
"id": 1,
"amount": "12.323,44"
}
如何配置我的springboot在java money字段中转换它? 这是我的对象
public class MyObject {
private Long id;
private Money amount;
}
答案 0 :(得分:0)
由于您已经要求进行Spring启动,并且似乎是如何在MVC中进行映射时自动转换,因此您正在寻找与@InitBinder
结合的@ControllerAdvice
。
本S.O文章What is the purpose of init binder in spring MVC中使用了一个例子。
编写一个biding方法,根据需要将字符串转换为金钱或任何其他对象。
答案 1 :(得分:0)
使用jackson自定义反序列化器
@JsonComponent
publi class MoneyJsonDeserializer
extends JsonDeserializer<Money> {
@Override
public Money deserialize(JsonParser jsonParser,
DeserializationContext deserializationContext)
throws IOException, JsonProcessingException {
TreeNode treeNode = jsonParser.getCodec().readTree(jsonParser);
TextNode amountNode = (TextNode) treeNode.get(
"amount");
return new Money(amountNode.asText());
}
}