下面列出了怎么用com.fasterxml.jackson.core.json.JsonWriteFeature的API类实例代码及写法,或者点击链接到github查看源代码。
private static ObjectMapper defaultMapper() {
final ObjectMapper objectMapper = JsonMapper.builder()
.serializationInclusion(JsonInclude.Include.NON_EMPTY)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.configure(JsonWriteFeature.WRITE_NUMBERS_AS_STRINGS, false)
.build()
.registerModule(new Jdk8Module())
.registerModule(new InterledgerModule(Encoding.BASE64));
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.configure(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN, true);
return objectMapper;
}
@ParameterizedTest
@MethodSource("amounts")
void shouldWriteNumbersAsStrings(final MonetaryAmount amount) throws JsonProcessingException {
final ObjectMapper unit = build()
.enable(JsonWriteFeature.WRITE_NUMBERS_AS_STRINGS)
.build();
final String expected = "{\"amount\":\"29.95\",\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(amount);
assertThat(actual, is(expected));
}
@ParameterizedTest
@MethodSource("hundreds")
void shouldWriteNumbersAsPlainStrings(final MonetaryAmount hundred) throws JsonProcessingException {
final ObjectMapper unit = build()
.enable(JsonWriteFeature.WRITE_NUMBERS_AS_STRINGS)
.enable(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN)
.build();
final String expected = "{\"amount\":\"100.00\",\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(hundred);
assertThat(actual, is(expected));
}