Reputation: 7394
I have the following JSON and POJO
JSON:
{
"startDate": "2018-09-18T12:00:00+0000",
"endDate": "2018-09-18T14:00:00+0000",
"startDateAsDate": 15372720000000
"endDateAsDate": 1537279200000
}
JAVA POJO:
public class ScheduledPeriod implements Comparator<ScheduledPeriod> {
private String startDate = "";
private String endDate = "";
private Date startDateAsDate;
private Date endDateAsDate;
public Date getStartDateAsDate() {
if (startDateAsDate != null) {
return startDateAsDate;
}
try {
startDateAsDate = (Date) SDF.parseObject(startDate);
return startDateAsDate;
} catch (Exception e) {
return null;
}
}
public Date getEndDateAsDate() {
if (endDateAsDate != null) {
return endDateAsDate;
}
try {
endDateAsDate = (Date) SDF.parseObject(endDate);
return endDateAsDate;
} catch (Exception e) {
return null;
}
}
}
Trying to parse JSON using GSON:
ScheduledPeriod scheduledPeriod = null;
try {
scheduledPeriod = new Gson().fromJson(jsonRequest, new TypeToken<ScheduledPeriod>() {
}.getType());
} catch (Exception e) {
}
Error I am getting:
com.google.gson.JsonSyntaxException: 1537272000000
java.text.ParseException: Unparseable date: "1537272000000"
Why am I getting the error above? The date is valid?
Upvotes: 2
Views: 1813
Reputation: 1804
base on this post you just register an adapter for Date :
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
return new Date(json.getAsJsonPrimitive().getAsLong());
}
}).create();
ScheduledPeriod scheduledPeriod = gson.fromJson(jsonRequest, ScheduledPeriod.class);
Upvotes: 4