final Gson gson = Converters.registerOffsetDateTime(new GsonBuilder()).create();
final OffsetDateTime original = OffsetDateTime.now();
final String json = gson.toJson(original);
final OffsetDateTime reconstituted = gson.fromJson(json, OffsetDateTime.class);
5条答案
按热度按时间n9vozmp41#
反序列化LocalDateTime属性时发生错误,因为GSON无法解析该属性的值,因为它不知道LocalDateTime对象。
使用GsonBuilder的registerTypeAdapter方法定义自定义LocalDateTime适配器。以下代码片段将帮助您反序列化LocalDateTime属性。
bhmjp9jg2#
扩展@Randula的答案,将分区的日期时间字符串(2014-03- 10 T18:46:40.000Z)解析为JSON:
ua4mk5z43#
进一步扩展@Evers的答案:
你可以用lambda来进一步简化如下:
qc6wkl3g4#
以下为我工作。
** java **
其中***stringJson***是一个Json,存储为String类型
Json:
“dateField”:“2020-01-30 15:00”
其中***dateField***的***LocalDateTime***类型存在于stringJson String变量中。
izkcnapc5#
正如上面的注解中所提到的,您还可以使用已经可用的序列化程序。
https://github.com/gkopff/gson-javatime-serialisers
您将其包含在项目中。
然后将其包含到GsonBuilder流程中
为了防止不清楚,不同的类类型存在不同的方法。