angularjs – 让Jackson将Java 8 Instant序列化为纪元毫秒的有效
使用带有Jackson
JSON解析后端的Spring RestControllers,前端使用AngularJS.我正在寻找一种有效的方法让Jackson序列化一个Instant作为纪元毫秒,以便随后使用
JavaScript代码. (在浏览器方面,我希望通过Angular的
Date Filter提供epoch ms:{{myInstantVal | date:’short’}}以获得我想要的日期格式.)
在Java方面,杰克逊将使用的吸气剂就是: public Instant getMyInstantVal() { return myInstantVal; } 序列化不会按原样运行,因为默认情况下,jackson-datatype-jsr310不会返回Epoch毫秒数.我看着将@JsonFormat添加到上面的getter中以将Instant变成前端可以使用的东西,但是它遇到两个问题:(1)我可以提供它的模式显然仅限于SimpleDateFormat,它不提供“ epoch milliseconds“选项,以及(2)当我尝试将Instant作为格式化日期发送到浏览器时,Jackson会抛出异常,因为@JsonFormat注释需要Instants的TimeZone属性,我不想硬编码为它会因用户而异. 到目前为止我的解决方案(并且工作正常)是使用@JsonGetter创建替换getter,这会导致Jackson使用此方法来序列化myInstantVal: @JsonGetter("myInstantVal") public long getMyInstantValEpoch() { return myInstantVal.toEpochMilli(); } 这是正确的方法吗?或者是否有一个很好的注释,我错过了我可以放在getMyInstantVal()所以我不必创建这些额外的方法? 解决方法
您只需阅读链接到的README.我的重点:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |