今天遇到了一個比較特殊的需求,服務端返回json的時間格式是2017-02-17T01:25:34中間有一個“T”,使用GSON時需要注意格式轉化問題。 最簡單的處理方法
注意:”T”需要進行轉義,要轉義的字符用上單引號括上
這種方法比較靈活,可以用到其他的更加復雜的情況。
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, AbnormalDateFormatter.formatter()).create();其中:AbnormalDateFormatter接口繼承JsonSerializer和JsonDeserializer接口
貼出AbnormalDateFormatter類的實現
class AbnormalDateFormatter implements JsonSerializer<Date>, JsonDeserializer<Date> { @Override public Date deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); try { return fmt.parse(jsonElement.getAsString()); } catch (ParseException e) { e.PRintStackTrace(); } return null; } @Override public JsonElement serialize(Date date, Type type, JsonSerializationContext jsonSerializationContext) { return date == null ? null : new JsonPrimitive(date.getTime()); } public static AbnormalDateFormatter formatter() { return new AbnormalDateFormatter(); }}新聞熱點
疑難解答