You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.4 KiB
35 lines
1.4 KiB
package com.bstek.ureport.console;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
|
import org.codehaus.jackson.map.SerializationConfig;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.TimeZone;
|
|
|
|
/**
|
|
* @author nelson
|
|
* @version 1.0
|
|
* @desc 扩展json格式化,支持java8 LocalDateTime
|
|
* @company 北京中经网软件有限公司
|
|
* @date 2021/7/12 18:08
|
|
*/
|
|
public class JsonMapper extends ObjectMapper {
|
|
public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
|
|
|
|
public JsonMapper() {
|
|
this.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
|
this.setDateFormat(new SimpleDateFormat(DEFAULT_DATE_TIME_FORMAT));
|
|
this.setTimeZone(TimeZone.getTimeZone("GMT+8"));
|
|
JavaTimeModule javaTimeModule = new JavaTimeModule();
|
|
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)));
|
|
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)));
|
|
|
|
this.registerModule(javaTimeModule);
|
|
}
|
|
}
|
|
|