Springboot конвертировать строку в JavaMoney - PullRequest
0 голосов
/ 07 мая 2018

У меня есть один клиент, который отправляет сообщения в мою валюту обслуживания, например:

{
"id": 1,
"amount": "12.323,44"
}

как настроить мой Springboot для преобразования этого в поле Java-денег? это мой объект

public class MyObject {
  private Long id;
  private Money amount;
}

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Использование пользовательского десериализатора Джексона

@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());
    }
}
0 голосов
/ 07 мая 2018

Поскольку вы запросили весеннюю загрузку и, похоже, как автоматически конвертировать при отображении в MVC, вы ищете @InitBinder в сочетании с @ControllerAdvice.

Пример, использованный здесь, находится в этой статье S.O Какова цель инициатора связывания весной MVC .

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

...