在 Android 開發(fā)中,我們經(jīng)常會使用 Gson 來解析 JSON 數(shù)據(jù)。但在實際應(yīng)用中,我們有可能會遇到 JSON 數(shù)據(jù)中日期為空字符串的情況。此時,使用 Gson 解析就會出現(xiàn)錯誤。
為了解決這個問題,我們可以通過注冊自定義反序列化器來處理日期為空字符串的情況。
Gson gson = new GsonBuilder() .registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { try { String dateStr = json.getAsString(); if (TextUtils.isEmpty(dateStr)) { return null; } return df.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); return null; } } }) .create();
代碼中的自定義反序列化器使用 SimpleDateFormat 將日期字符串轉(zhuǎn)換成 Date 類型,并且在字符串為空的情況下返回 null。
通過注冊自定義反序列化器,我們就能夠順利解析 JSON 數(shù)據(jù)中的日期空字符串了。