使用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是否还支持开箱即用的更简洁格式,还是我必须为LocalDates

实现自定义序列化程序?

(我已经尝试过了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

回到顶部