使用 Jackson 将 JSON 字符串的一部分反序列化为 POJO 中的 DateTime
Deserialize part of JSON string to DateTime in POJO using Jackson
我正在读取给定表单的 json 并将其存储为 POJO。
{
"details" : [
{
"version" : 1,
"time" : "2021-01-01T00:00:00.000Z",
}
]
}
我的 POJO class 看起来像:
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;
下面的 link 展示了如何进行其他不同的转换,尤其是在标准时间格式的情况下
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
添加这个对我有用。
在 POJO 中,将时间指定为 'DateTime' 而不是 'String'.
public class Details
{
private int version;
private DateTime time;
...
//getters & setters
}
我正在读取给定表单的 json 并将其存储为 POJO。
{
"details" : [
{
"version" : 1,
"time" : "2021-01-01T00:00:00.000Z",
}
]
}
我的 POJO class 看起来像:
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;
下面的 link 展示了如何进行其他不同的转换,尤其是在标准时间格式的情况下
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
添加这个对我有用。 在 POJO 中,将时间指定为 'DateTime' 而不是 'String'.
public class Details
{
private int version;
private DateTime time;
...
//getters & setters
}