Per effettuare ciò, bisogna inserire le seguenti righe di codice nella servlet:
JsonSerializer<Date> ser = new JsonSerializer<Date>() {
@Override
public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext
context) {
return src == null ? null : new JsonPrimitive(src.getTime());
}
};
Gson gson = new GsonBuilder()
.registerTypeAdapter(Date.class, ser).create();
PrintWriter out = response.getWriter();
out.println(gson.toJson(response));
E le seguenti righe di codice nel Thread android,
dove viene richiamata la servlet:
JsonDeserializer<Date> deser = new JsonDeserializer<Date>() {
@Override
public Date deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
return json == null ? null : new Date(json.getAsLong());
}
};
Gson gson = new GsonBuilder()
.registerTypeAdapter(Date.class, deser).create();
Oggetto ogg = gson.fromJson(responseServlet, Oggetto.class);
Troveremo così nell'ogg valorizzati gli attributi di tipo Date
e non avremo quindi problemi di ClassCastException.
Nessun commento:
Posta un commento