JSON知识总结- Gson(五)Date

来源:互联网 发布:中国人在非洲 知乎 编辑:程序博客网 时间:2024/06/06 17:43

使用Gson做java.util.Date的转换,找到了一种方法:

首先要写Date的转化器

package org.ygy.date;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<Date> {@Overridepublic Date deserialize(JsonElement json, Type typeOfT,JsonDeserializationContext context) throws JsonParseException {return new Date(json.getAsJsonPrimitive().getAsLong());}}
package org.ygy.date;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<Date> {@Overridepublic JsonElement serialize(Date src, Type typeOfSrc,JsonSerializationContext context) {return new JsonPrimitive(src.getTime());}}
测试:

package org.ygy.date;import java.text.DateFormat;import java.util.Date;import org.junit.Test;import com.google.gson.Gson;import com.google.gson.GsonBuilder;public class DateTest {public static String toJson(Date date) {Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new UtilDateSerializer()).setDateFormat(DateFormat.LONG).create();return gson.toJson(date);}public static Date fromJson(String json) {Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new UtilDateDeserializer()).setDateFormat(DateFormat.LONG).create();return gson.fromJson(json , Date.class);}@Testpublic void testDate() {String json = toJson(new Date());System.out.println("json->" + json);Date date = fromJson(json);System.out.println(date.getTime());}}
结果显示:


原创粉丝点击