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.

Напишите метод ожидания, чтобы преобразовать строку в деньги или любой другой объект по вашему желанию.

Другие вопросы по тегам