我正在将一个 json 列表映射到 java 对象列表。我映射到的类有一个额外的时间字段(当地时间)。
例如,在传入的 json 中,时间戳字段显示为 1510549200000(UTC 时间戳)。此示例对应于一个日期:当地时间 2017 年 11 月 13 日,星期一 12:00:00 GMT-05:00,当地时间
映射到类后,我需要根据传入的 UTC 值分配本地时间。
映射是这样完成的:
List<myClass> items = objectMapper.readValue(
jsn_a.toString(), new TypeReference<List<myClass>>() {});
在我的类构造函数中是:
public myClass() {
this.localTime= myUTCTime;
}
但是当我查看生成的对象列表时,我看到 localTime 仍然设置为 null。
我可以理解为什么会发生这种情况(首先调用构造函数);但是如何在对象创建期间将 utc 时间戳分配给 localTime 字段。
通常,Java-JSON 映射库调用 no arg 构造函数将 JSON 对象反序列化为 Java 对象。
根据您使用的库,您可以使用一种方法来设置 arg 构造函数中的字段。
或者更简单地在默认反序列化后调用字段上的设置器:
Foo foo = ... // unserialize from json
foo.setLocalTime(myUTCTime);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句