构造模式,创建一个用于构造Gson对象的类,注册日期序列化适配器,和反序列化适配器,确保一致。代码如下。
package com.ccxe.common.utils;
import java.text.DateFormat;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class UtilGsonBuilder {
public static Gson create(){
GsonBuilder gb=new GsonBuilder();
gb.registerTypeAdapter(java.util.Date.class , new UtilDateSerializer()).setDateFormat(DateFormat.LONG);
gb.registerTypeAdapter(java.util.Date.class , new UtilDateDeserializer()).setDateFormat(DateFormat.LONG);
Gson gson=gb.create();
return gson;
}
}
package com.ccxe.common.utils;
import java.lang.reflect.Type;
import java.util.Date;
import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
public class UtilDateSerializer implements JsonSerializer<java.util.Date> {
public JsonElement serialize(Date src, Type typeOfSrc,
JsonSerializationContext context) {
return new JsonPrimitive(src.getTime());
}
}
package com.ccxe.common.utils;
import java.lang.reflect.Type;
import java.util.Date;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
public class UtilDateDeserializer implements JsonDeserializer<java.util.Date> {
public Date deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
return new java.util.Date(json.getAsJsonPrimitive().getAsLong());
}
}