我有以下 JSON 和 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;
}
}
}
尝试使用 GSON 解析 JSON:
ScheduledPeriod scheduledPeriod = null;
try {
scheduledPeriod = new Gson().fromJson(jsonRequest, new TypeToken<ScheduledPeriod>() {
}.getType());
} catch (Exception e) {
}
我收到错误:
com.google.gson.JsonSyntaxException: 1537272000000
java.text.ParseException: Unparseable date: "1537272000000"
为什么我会收到上述错误?日期有效吗?
最佳答案
基于this post,您只需注册一个日期适配器:
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);
关于java - Gson - 无法解析的日期错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47534648/