使用Gson将Java 8 LocalDate序列化为yyyy-mm-dd
我正在使用Java
8和Gson的最新RELEASE
版本(通过Maven)。如果我序列化一个,我会得到这样的东西LocalDate
"birthday": { "year": 1997,
"month": 11,
"day": 25
}
我本来喜欢的地方"birthday": "1997-11-25"
。Gson是否还支持开箱即用的更简洁格式,还是我必须为LocalDate
s
实现自定义序列化程序?
(我已经尝试过了gsonBuilder.setDateFormat(DateFormat.SHORT)
,但这似乎没有什么不同。)
回答:
直到另行通知,我已经实现了一个自定义序列化器,如下所示:
class LocalDateAdapter implements JsonSerializer<LocalDate> { public JsonElement serialize(LocalDate date, Type typeOfSrc, JsonSerializationContext context) {
return new JsonPrimitive(date.format(DateTimeFormatter.ISO_LOCAL_DATE)); // "yyyy-mm-dd"
}
}
它可以像这样安装:
Gson gson = new GsonBuilder() .setPrettyPrinting()
.registerTypeAdapter(LocalDate.class, new LocalDateAdapter())
.create();
以上是 使用Gson将Java 8 LocalDate序列化为yyyy-mm-dd 的全部内容, 来源链接: utcz.com/qa/422576.html