【发布时间】:2018-06-09 05:32:26
【问题描述】:
我想将 Java POJO 转换为 Map 不使用 对属性使用 JSON 序列化(例如,将日期转换为长字符串或 ISO8601 字符串)。我只是希望这些字段保持原样。
例如,如果我有一个这样定义的 POJO:
public class MyPojo {
private Date date;
private String x;
public MyPojo(Date date, String x) {
this.date = date;
this.x = x;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
}
我知道我可以使用Jackson,如this Stackoverflow 问题中所述,但结果不是我想要的。例如,如果我这样做:
Map<String, Object> x = new ObjectMapper().convertValue(new MyPojo(new Date(), "x"), new TypeReference<Map<String, Object>>() {});
System.out.println(x);
我得到这个结果:
{date=1528521584984, x=x}
而我只想保留 java.util.Date 实例而不被序列化的 Map。
请注意,我显然希望这项工作适用于嵌套的 Pojo,例如:
public class MyPojo {
private MyOtherPojo otherPojo;
...
}
我怎样才能做到这一点?
【问题讨论】:
-
你最后做了什么?我遇到过几次...
-
别以为我可以和杰克逊一起工作。
-
我最终选择了 apache commons BeanUtils...
标签: java