猿问

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

我正在尝试使用 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

目的

http://img3.mukewang.com/6141b3f90001e9fb06510021.jpg

但是,当将 JSON 传递给 REST 以进行方法调用时,类型更改为Date

月关宝盒
浏览 808回答 2
2回答

三国纷争

您可以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
随时随地看视频慕课网APP

相关分类

Java
我要回答