我有一个客户像这样发布到我的服务货币中:
{
"id": 1,
"amount": "12.323,44"
}
如何配置我的 springboot 以将其转换为 java 货币字段?这是我的对象
public class MyObject {
private Long id;
private Money amount;
}
我有一个客户像这样发布到我的服务货币中:
{
"id": 1,
"amount": "12.323,44"
}
如何配置我的 springboot 以将其转换为 java 货币字段?这是我的对象
public class MyObject {
private Long id;
private Money amount;
}
由于您要求使用 spring boot,并且似乎是如何在 MVC 中映射时自动转换,因此您正在寻找@InitBinder
加上@ControllerAdvice
.
在这篇 SO 文章中使用了一个示例What is the purpose of init binder in spring MVC。
编写一个投标方法,将字符串转换为金钱或任何其他你想要的对象。
使用杰克逊自定义反序列化器
@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());
}
}