Browse Source

fix:json 格式时间错误

master
燕鹏 3 years ago
parent
commit
a526d99a5a
  1. 35
      ureport2-console/src/main/java/com/bstek/ureport/console/JsonMapper.java
  2. 13
      ureport2-console/src/main/java/com/bstek/ureport/console/WriteJsonServletAction.java
  3. 7
      ureport2-core/pom.xml

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

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

7
ureport2-core/pom.xml

@ -71,7 +71,12 @@
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.11</version>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.12.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>

Loading…
Cancel
Save