Gson日期解串器无法正常工作

时间:2016-09-05 09:56:48

标签: android json json-deserialization

我有一个json文本:

  

[{...,lastUpdateDate = 2016年9月1日上午6:00:00,运营商= [{callSetupCharge = 0,displayName = AUS VFONE; AUS VODA; 505 03,...}],visible = true}]

我正在尝试将文本转换为对象,但由于某种原因,反序列化器无法正常工作。我已经调试了,方法deserialize()中的第一行等于“Sep”

  Gson gson = new GsonBuilder()
       .registerTypeAdapter(Date.class, new DateDeserializer()).create();
        Type listType = new TypeToken<ArrayList<CountryDto>>(){}.getType();
        ArrayList<CountryDto> countryList = gson.fromJson(text, listType);


public class DateDeserializer implements JsonDeserializer<Date> {

    @Override
    public Date deserialize(JsonElement element, Type arg1, JsonDeserializationContext arg2) throws JsonParseException {
        String date = element.getAsString();

        SimpleDateFormat formatter = new SimpleDateFormat("MMM d, yyyy H:mm:ss a");
        formatter.setTimeZone(TimeZone.getTimeZone("UTC"));

        try {
            return formatter.parse(date);
        } catch (ParseException e) {
            System.err.println("Failed to parse Date due to:"+ e);
            return null;
        }
    }
}

字段lastUpdateDate导致问题:

  

引起:com.google.gson.stream.MalformedJsonException:   第1行第136行的未终止对象路径$ [0] .lastUpdateDate

0 个答案:

没有答案