gson:convert/Date(1341348517698 + 0200)/到日历

Dun*_*ken 2 android json calendar gson

我正在尝试使用gson将日期时间(C#)反序列化为JSON(StartDate =/Date(1341348517698 + 0200)/)到Android日历对象...

我已经尝试了以下但没有成功:

ObjectWithCalender cal = gson.fromJson(jsonWithDate, ObjectWithCalender.class);
Run Code Online (Sandbox Code Playgroud)

azg*_*fer 6

您需要为Date创建自定义反序列化器.例如,创建这个类:

public class DotNetDateDeserializer implements JsonDeserializer<Date> {
   @Override
   public Date deserialize(JsonElement json, Type typfOfT, JsonDeserializationContext context) {
      // this is the place where you convert .NET timestamp into Java Date object
   } 
}
Run Code Online (Sandbox Code Playgroud)

然后在将JSON字符串转换为POJO之前:

GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Date.class, new DotNetDateDeserializer());
Gson gson = builder.create();
gson.fromJson(jsonString, Class);
Run Code Online (Sandbox Code Playgroud)