Springboot конвертировать строку в JavaMoney
У меня есть один клиент, который публикует в моей сервисной валюте вот так:
{
"id": 1,
"amount": "12.323,44"
}
Как настроить мой Springboot для преобразования этого в поле Java деньги? это мой объект
public class MyObject {
private Long id;
private Money amount;
}
2 ответа
Использование специального десериализатора Джексона
@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());
}
}
Так как вы запросили весеннюю загрузку и, похоже, как автоматически конвертировать при отображении в MVC, вы ищете @InitBinder
в сочетании с @ControllerAdvice
,
Пример, используемый здесь, находится в этой статье SO. Какова цель инициатора связывания в весеннем MVC.
Напишите метод ожидания, чтобы преобразовать строку в деньги или любой другой объект по вашему желанию.