我使用的是Java 8和Gson的最新RELEASE
版本(通过Maven)。
"birthday": {
"year": 1997,
"month": 11,
"day": 25
}
在这里我更喜欢"birthday": "1997-11-25"
。Gson是否也支持更简洁的现成格式,或者我是否必须为LocalDate
实现一个自定义的序列化程序?
(我试过gsonBuilder.setDateFormat(DateFormat.SHORT)
,但似乎没有什么区别。)
5条答案
按热度按时间h4cxqtbf1#
在进一步通知之前,我已经实现了一个自定义序列化程序,如下所示:
它可以安装,例如:
0sgqnhkj2#
我使用以下代码,支持读/写和空值:
注册为@Drux的人说:
编辑2019-04-04更简单的实现
您可以通过注册
nullSafe()
Package 版本来添加null
支持:qoefvg9y3#
支持序列化和反序列化的Kotlin版本:
注册您的GsonBuilder。使用
nullSafe()
Package 以获得null
支持:acruukt94#
上游报告为https://github.com/google/gson/issues/1059。来自上游的当前建议是使用https://github.com/gkopff/gson-javatime-serialisers加载项。
hc2pp10m5#
由于某些原因,使用上述类和.nullSafe()不起作用,因为我仍然得到这个JDK 17和Gson异常:
所以我使用了这个带有空值检查的自定义TypeAdapter: