Gson的日期格式跨操作系统处理办法

构造模式,创建一个用于构造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());  
	}

}



你可能感兴趣的:(操作系统)