|
@@ -0,0 +1,46 @@
|
|
|
+package com.bz.zoneiot.water.web.config;
|
|
|
+
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.fasterxml.jackson.databind.module.SimpleModule;
|
|
|
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
|
|
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
|
|
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
+import org.springframework.context.annotation.Bean;
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
+import org.springframework.context.annotation.Primary;
|
|
|
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
|
|
|
+
|
|
|
+import java.math.BigInteger;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+
|
|
|
+/**
|
|
|
+ * jackson配置
|
|
|
+ */
|
|
|
+@Configuration
|
|
|
+public class JacksonConfig {
|
|
|
+ @Bean
|
|
|
+ @Primary
|
|
|
+ @ConditionalOnMissingBean(ObjectMapper.class)
|
|
|
+ public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
|
|
|
+ ObjectMapper objectMapper = builder.createXmlMapper(false).build();
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 序列换成json时,将所有的long变成string
|
|
|
+ * 因为js中得数字类型不能包含所有的java long值并且long值转json丢失精度
|
|
|
+ */
|
|
|
+ SimpleModule module = new SimpleModule();
|
|
|
+ module.addSerializer(Long.class, ToStringSerializer.instance);
|
|
|
+ module.addSerializer(Long.TYPE, ToStringSerializer.instance);
|
|
|
+ module.addSerializer(BigInteger.class, ToStringSerializer.instance);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //LocalDateTime
|
|
|
+ LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
+ module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer);
|
|
|
+ objectMapper.registerModule(module);
|
|
|
+
|
|
|
+ return objectMapper;
|
|
|
+ }
|
|
|
+}
|