diff --git a/ureport2-console/src/main/java/com/bstek/ureport/console/JsonMapper.java b/ureport2-console/src/main/java/com/bstek/ureport/console/JsonMapper.java
new file mode 100644
index 0000000..2fe8e0f
--- /dev/null
+++ b/ureport2-console/src/main/java/com/bstek/ureport/console/JsonMapper.java
@@ -0,0 +1,35 @@
+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);
+ }
+}
diff --git a/ureport2-console/src/main/java/com/bstek/ureport/console/WriteJsonServletAction.java b/ureport2-console/src/main/java/com/bstek/ureport/console/WriteJsonServletAction.java
index 9429ce3..f40e50b 100644
--- a/ureport2-console/src/main/java/com/bstek/ureport/console/WriteJsonServletAction.java
+++ b/ureport2-console/src/main/java/com/bstek/ureport/console/WriteJsonServletAction.java
@@ -15,6 +15,10 @@
******************************************************************************/
package com.bstek.ureport.console;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
@@ -22,9 +26,7 @@ import java.text.SimpleDateFormat;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
+
/**
@@ -35,10 +37,7 @@ public abstract class WriteJsonServletAction extends BaseServletAction{
protected void writeObjectToJson(HttpServletResponse resp,Object obj) throws ServletException, IOException{
resp.setContentType("text/json");
resp.setCharacterEncoding("UTF-8");
- ObjectMapper mapper=new ObjectMapper();
- mapper.setSerializationInclusion(Inclusion.NON_NULL);
- mapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS,false);
- mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+ JsonMapper mapper=new JsonMapper();
OutputStream out = resp.getOutputStream();
try {
mapper.writeValue(out, obj);
diff --git a/ureport2-core/pom.xml b/ureport2-core/pom.xml
index a8f503e..ebbf63f 100644
--- a/ureport2-core/pom.xml
+++ b/ureport2-core/pom.xml
@@ -71,7 +71,12 @@
org.codehaus.jackson
jackson-mapper-asl
- 1.9.11
+ 1.9.13
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+ 2.12.4
commons-io