Browse Source

加入微信接口中时间类型的序列化转换类,供转换json使用

BinaryWang 8 years ago
parent
commit
95cf37baa4

+ 1 - 1
pom.xml

@@ -49,7 +49,7 @@
     <slf4j.version>1.7.10</slf4j.version>
     <logback.version>1.1.2</logback.version>
     <jodd-http.version>3.6.7</jodd-http.version>
-    <jackson.version>2.7.5</jackson.version>
+    <jackson.version>2.8.0</jackson.version>
     <gson.version>2.7</gson.version>
     <commons-lang3.version>3.4</commons-lang3.version>
     <commons-io.version>2.5</commons-io.version>

+ 3 - 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlMessage.java

@@ -6,6 +6,8 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import me.chanjar.weixin.mp.util.json.WxLongTimeJsonSerializer;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -47,6 +49,7 @@ public class WxMpXmlMessage implements Serializable {
   private String fromUserName;
 
   @XStreamAlias("CreateTime")
+  @JsonSerialize(using = WxLongTimeJsonSerializer.class)
   private Long createTime;
 
   @XStreamAlias("MsgType")

+ 24 - 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxLongTimeJsonSerializer.java

@@ -0,0 +1,24 @@
+package me.chanjar.weixin.mp.util.json;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+/**
+ * Created by Binary Wang on 2016/7/13.
+ */
+public class WxLongTimeJsonSerializer extends JsonSerializer<Long> {
+  private static SimpleDateFormat DF = new SimpleDateFormat(
+      "yyyy-MM-dd hh:mm:ss");
+
+  @Override
+  public void serialize(Long value, JsonGenerator gen,
+      SerializerProvider serializers)
+      throws IOException, JsonProcessingException {
+    gen.writeString(DF.format(value * 1000));
+  }
+}