爲了在SpringBoot工程中集中解決long類型轉成json時JS丟失精度問題和統一設置常見日期類型序列化格式,咱們能夠自定義Jackson配置類,具體以下:java
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.DateSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Date; /** * 自定義jackson配置 * 1.解決long類型轉成json時JS丟失精度問題 * 2.統一設置常見日期類型序列化格式 */ @Configuration public class JacksonConfig { @Bean public ObjectMapper objectMapper() { // 序列換成json時,將全部的long變成string SimpleModule simpleModule = new SimpleModule(); simpleModule.addSerializer(Long.class, ToStringSerializer.instance); simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); // 日期序列化設置 JavaTimeModule javaTimeModule = new JavaTimeModule(); javaTimeModule.addSerializer(Date.class, new DateSerializer(false, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))); javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); return new ObjectMapper().registerModule(simpleModule) .registerModule(javaTimeModule); } }