为了账号安全,请及时绑定邮箱和手机立即绑定

Jackson JSON 日期反序列化为时间戳

Jackson JSON 日期反序列化为时间戳

月关宝盒 2021-09-15 16:50:10
我正在尝试使用 Jackson2 将 JSON 映射到 POJO 作为我的 REST 方法。我的 POJO 中的 DueDate 属性是 java.util.date 类型。我读到杰克逊会默认将 JSON 反序列化为时间戳。我只想要这种行为。但是,在我的情况下,Jackson 正在将 DueDate 属性转换为 Date。任何人都可以帮助我如何让 Jackson 将DueDate反序列化为 timestamp。JSON在这里...{ "atr1": null, "atr2": null, "dueDate": "2018-07-11" }POJO在这里..public class Sample {    private String atr1;    private String atr1;    private Date dueDate;}REST API ...    public Response create(String json) {                                                    ObjectMapper mapper = new ObjectMapper();            Sample sample1 = mapper.readValue(json,Sample.class); }谢谢更多细节...从实际UI对象调用方法时DueDate的值类型为Timestamp目的但是,当将 JSON 传递给 REST 以进行方法调用时,类型更改为Date。
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

您可以java.sql.timestamp在 pojo 中使用而不是java.util.Date.


import java.sql.Timestamp;


public class sample {

    private String atr1;

    private String atr2;

    private Timestamp dueDate;

}

您可以像上面一样访问日期时间戳。我还制作了用于确认的代码片段,如下所示。


 public static void main( String[] args ) throws JsonParseException, JsonMappingException, IOException

    {

        String json = "{ \"atr1\": null, \"atr2\": null, \"dueDate\": \"2018-07-11\" }";

        ObjectMapper mapper = new ObjectMapper();

        sample sample1 = mapper.readValue(json, sample.class);

        System.out.println(sample1.getDueDate());

    }

以上输出:- 2018-07-11 05:30:00.0



查看完整回答
反对 回复 2021-09-15
  • 2 回答
  • 0 关注
  • 807 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信