Java 使用Jackson将部分JSON字符串反序列化为POJO中的DateTime

Java 使用Jackson将部分JSON字符串反序列化为POJO中的DateTime,java,datetime,jackson,deserialization,pojo,Java,Datetime,Jackson,Deserialization,Pojo,我正在读取给定形式的json并将其存储为POJO { "details" : [ { "version" : 1, "time" : "2021-01-01T00:00:00.000Z", } ] } 我的POJO类看起来像: public class Details { private int version; private String time;

我正在读取给定形式的json并将其存储为POJO

{
 "details" : [ 
   {
    "version" : 1, 
    "time" : "2021-01-01T00:00:00.000Z",
   }
 ]
}
我的POJO类看起来像:

public class Details
{
    private int version;
    private String time;
    
    public Integer getVersion(){
        return version;
    }

    public void setVersion(int version){
        this.version = version;
    }

    public String getTime(){
        return time;
    }

    public void setTime(String time){
        this.time = time;
    }
}

时间被读取为字符串。如何使用Jackson将其反序列化为DateTime?

应该能够为您的日期使用
@JsonFormat
注释。首先将时间字段从
String
更改为
Date
,然后执行以下操作:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy'T'hh:mm:ss.SSS'Z'")
private Date time;
下面的链接显示了如何进行其他不同的转换,特别是如果它是标准时间格式

添加这个对我来说很有效。 在POJO中,将时间指定为“DateTime”而不是“String”

public class Details
{
    private int version;
    private DateTime time;
    ...
    //getters & setters
}

在发布此问题之前,您是否尝试过谷歌搜索或在线搜索?一个简单的在线搜索会给你结果。这适用于Date,而不是DateTime。看看它需要是Joda time,“DateTime”而不是Date,因为我稍后会用另一个DateTime检查它。我已经尝试了这个链接的第8步。我收到错误“不兼容类型”。找到你可以发布你尝试过的和你收到的任何stacktraces。将helpful@lakshmisubhash,看看,
public class Details
{
    private int version;
    private DateTime time;
    ...
    //getters & setters
}