Вы должны написать собственный сериализатор / десериализатор для каждого типа из пакета javax.money
, который вы хотите использовать, или зарегистрировать уже созданный модуль. Например: jackson-datatype-money .
Вам необходимо добавить зависимость :
<dependency>
<groupId>org.zalando</groupId>
<artifactId>jackson-datatype-money</artifactId>
<version>1.1.1</version>
</dependency>
Простой пример использования:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.zalando.jackson.datatype.money.MoneyModule;
import javax.money.CurrencyUnit;
import javax.money.Monetary;
public class JsonMoneyApp {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.registerModule(new MoneyModule());
CurrencyUnit cu = Monetary.getCurrency("USD");
String json = mapper.writeValueAsString(cu);
System.out.println(json);
CurrencyUnit unit = mapper.readValue(json, CurrencyUnit.class);
System.out.println(unit);
}
}
Код напечатан выше:
"USD"
USD