我有一个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