/** * Shortcut for {@link SerializationFeature#INDENT_OUTPUT} option. */ public void setIndentOutput(boolean indentOutput) { this.builder.indentOutput(indentOutput); }
/** * Shortcut for {@link SerializationFeature#INDENT_OUTPUT} option. */ public void setIndentOutput(boolean indentOutput) { this.builder.indentOutput(indentOutput); }
@Test public void createXmlMapper() { Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json().indentOutput(true); ObjectMapper jsonObjectMapper = builder.build(); ObjectMapper xmlObjectMapper = builder.createXmlMapper(true).build(); assertTrue(jsonObjectMapper.isEnabled(SerializationFeature.INDENT_OUTPUT)); assertTrue(xmlObjectMapper.isEnabled(SerializationFeature.INDENT_OUTPUT)); assertTrue(xmlObjectMapper.getClass().isAssignableFrom(XmlMapper.class)); }
@Test public void propertiesShortcut() { ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().autoDetectFields(false) .defaultViewInclusion(true).failOnUnknownProperties(true).failOnEmptyBeans(false) .autoDetectGettersSetters(false).indentOutput(true).build(); assertNotNull(objectMapper); assertTrue(objectMapper.isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION)); assertTrue(objectMapper.isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)); assertFalse(objectMapper.isEnabled(MapperFeature.AUTO_DETECT_FIELDS)); assertFalse(objectMapper.isEnabled(MapperFeature.AUTO_DETECT_GETTERS)); assertFalse(objectMapper.isEnabled(MapperFeature.AUTO_DETECT_IS_GETTERS)); assertFalse(objectMapper.isEnabled(MapperFeature.AUTO_DETECT_SETTERS)); assertTrue(objectMapper.isEnabled(SerializationFeature.INDENT_OUTPUT)); assertFalse(objectMapper.isEnabled(SerializationFeature.FAIL_ON_EMPTY_BEANS)); }
@Test // SPR-14899 public void writePojoWithPrettyPrint() { ObjectMapper mapper = Jackson2ObjectMapperBuilder.json().indentOutput(true).build(); this.messageWriter = new ServerSentEventHttpMessageWriter(new Jackson2JsonEncoder(mapper)); Flux<Pojo> source = Flux.just(new Pojo("foofoo", "barbar"), new Pojo("foofoofoo", "barbarbar")); testWrite(source, outputMessage, Pojo.class); StepVerifier.create(outputMessage.getBody()) .consumeNextWith(stringConsumer("data:")) .consumeNextWith(stringConsumer("{\n" + "data: \"foo\" : \"foofoo\",\n" + "data: \"bar\" : \"barbar\"\n" + "data:}")) .consumeNextWith(stringConsumer("\n")) .consumeNextWith(stringConsumer("\n")) .consumeNextWith(stringConsumer("data:")) .consumeNextWith(stringConsumer("{\n" + "data: \"foo\" : \"foofoofoo\",\n" + "data: \"bar\" : \"barbarbar\"\n" + "data:}")) .consumeNextWith(stringConsumer("\n")) .consumeNextWith(stringConsumer("\n")) .expectComplete() .verify(); }
/** * Shortcut for {@link SerializationFeature#INDENT_OUTPUT} option. */ public void setIndentOutput(boolean indentOutput) { this.builder.indentOutput(indentOutput); }
/** * Shortcut for {@link SerializationFeature#INDENT_OUTPUT} option. */ public void setIndentOutput(boolean indentOutput) { this.builder.indentOutput(indentOutput); }
@Bean public Jackson2ObjectMapperBuilder jacksonBuilder() { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); // Customize builder.indentOutput(true).dateFormat(new SimpleDateFormat("yyyy-MM-dd")); return builder; }
@Bean public Jackson2ObjectMapperBuilder jacksonBuilder() { Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder(); b.indentOutput(true).dateFormat(new SimpleDateFormat("yyyy-MM-dd")); return b; }
@Bean public Jackson2ObjectMapperBuilder jacksonBuilder() { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); builder.indentOutput(true); builder.dateFormat(new SimpleDateFormat("yyyy-MM-dd")); return builder; } }
@Bean public Jackson2ObjectMapperBuilder jacksonBuilder() { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); builder.indentOutput(true).dateFormat(new SimpleDateFormat("yyyy-MM-dd")); builder.propertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES); builder.serializationInclusion(Include.NON_NULL); return builder; }
@SpringBootApplication public class EventAppConfiguration { public static void main(String[] args) { SpringApplication.run(EventAppConfiguration.class, args); } @Bean public Jackson2ObjectMapperBuilder jacksonBuilder() { Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder(); b.indentOutput(true) //Enable Introspects for both Jackson and JAXB annotation .annotationIntrospector(introspector()) //Use CamelCase naming .propertyNamingStrategy(PropertyNamingStrategy.PASCAL_CASE_TO_CAMEL_CASE) .dateFormat(new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss")); return b; } @Bean public AnnotationIntrospector introspector(){ AnnotationIntrospector primary = new JacksonAnnotationIntrospector(); AnnotationIntrospector secondary = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); AnnotationIntrospector pair = AnnotationIntrospector.pair(primary, secondary); return pair; } }
@Bean public Jackson2ObjectMapperBuilder objectMapperBuilder() { return new Jackson2ObjectMapperBuilder() .serializationInclusion(JsonInclude.Include.NON_EMPTY) .featuresToDisable( SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES ) .featuresToEnable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY) .indentOutput(true); } }
@Configuration @EnableWebMvc public class WebConfiguration extends WebMvcConfigurerAdapter { ... other configurations @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); builder.serializationInclusion(JsonInclude.Include.NON_NULL); builder.propertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES); builder.serializationInclusion(Include.NON_EMPTY); builder.indentOutput(true).dateFormat(new SimpleDateFormat("yyyy-MM-dd")); converters.add(new MappingJackson2HttpMessageConverter(builder.build())); converters.add(new MappingJackson2XmlHttpMessageConverter(builder.createXmlMapper(true).build())); } }
@Bean public ObjectMapper objectMapper() { // Registers com.fasterxml.jackson.datatype.jsr310.JavaTimeModule automatically ObjectMapper objectMapper = Jackson2ObjectMapperBuilder .json() .indentOutput(true) .featuresToDisable(WRITE_DATES_AS_TIMESTAMPS) .serializationInclusion(NON_ABSENT) .build(); customizeObjectMapper(objectMapper); return objectMapper; }
@Bean public Jackson2ObjectMapperBuilder jacksonBuilder() { Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json(); builder.indentOutput(false) .dateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")) .failOnUnknownProperties(false) .featuresToEnable(ALLOW_NON_NUMERIC_NUMBERS) .featuresToEnable(ALLOW_SINGLE_QUOTES) .serializationInclusion(JsonInclude.Include.NON_NULL) .modules(new JodaModule(), new Hibernate5Module()); return builder; }
@Bean public Jackson2ObjectMapperBuilder objectMapperBuilder(JsonComponentModule jsonComponentModule) { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); builder // .serializerByType(ZonedDateTime.class, new JsonSerializer<ZonedDateTime>() { // @Override // public void serialize(ZonedDateTime zonedDateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { // jsonGenerator.writeString(DateTimeFormatter.ISO_ZONED_DATE_TIME.format(zonedDateTime)); // } // }) .serializationInclusion(JsonInclude.Include.NON_EMPTY) .featuresToDisable( SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES ) .featuresToEnable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY) .indentOutput(true) .modulesToInstall(jsonComponentModule); return builder; }
private static Jackson2ObjectMapperBuilder getDefaultBuilder() { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder() .indentOutput(false) .createXmlMapper(false) .dateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")) .failOnUnknownProperties(false) .featuresToEnable(ALLOW_NON_NUMERIC_NUMBERS) .featuresToEnable(ALLOW_SINGLE_QUOTES) .serializationInclusion(JsonInclude.Include.NON_NULL) .modules(new JodaModule()); return builder; }