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

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);
}
}