1
配置JSON输出我想
在春季启动1.5.2什么项目,我通过JmsTemplate#convertAndSend发送JSON消息,一些JMS(ActiveMQ的)队列/主题。我使用Java 8,其中一些实例为LocalDate
和LocalDateTime
。我想稍微改变JSON输出:在Spring JMS消息
- pretty-print the JSON;和
- 以ISO格式呈现日期/时间戳。
默认情况下,JSON最终都在一个行,日期/时间戳转换为派出格式,例如:
"startDate" : { "year" : 2017, "month" : "MARCH", "era" : "CE", "dayOfYear" : 64, "dayOfWeek" : "SUNDAY", "leapYear" : false, "dayOfMonth" : 5, "monthValue" : 3, "chronology" : { "calendarType" : "iso8601", "id" : "ISO" } }
我已经试过
我已经添加了jackson-datatype-jsr310
到项目依赖我还设置
spring.jackson.serialization.indent-output=true
spring.jackson.serialization.write_dates_as_timestamps=false
在application.properties
。行为没有变化。
我又试图修改消息变换的初始化包括以下设置:
@Bean
@Primary
public MessageConverter jacksonJmsMessageConverter() {
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
ObjectMapper objectMapper = new ObjectMapper();
// default settings for MappingJackson2MessageConverter
objectMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// add settings I want
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
converter.setObjectMapper(objectMapper);
return converter;
}
但仍然有任何变化。
如何定制上述的JSON输出?