【发布时间】:2014-10-15 06:14:08
【问题描述】:
我想将 json 字符串转换为一个对象。
json 看起来像这样:
{"receive":1413342268310}
对象是这样的:
public class PositionBean {
private Long id;
private Date receive;
public void setReceive (Date receive) {
this.receive = receive;
}
public void setReceive (Long receive) {
this.receive = new Date (receive);
}
public Long getReceive () {
return receive.getTime ();
}
}
我必须在其他类中使用的所有 set 和 get 方法,所以我不能删除一个方法。 当我调用
objectMapper.readValue(str, PositionBean.class);
提示异常,jackon不知道设置了哪个方法,所以我使用@JsonIgnore,但发现receive为null。
【问题讨论】:
-
您最好的方法可能是编写一个自定义反序列化器,将
long转换为Date。 This question 可能有用。 (我敢肯定有人有这种确切情况的例子;Jackson 甚至可能默认包含这样的映射器。) -
你在哪里使用@jsonignore?关于方法?如果是这样,您可以尝试在接收字段中执行此操作吗?
-
你能更新一下你使用 JSONIgnore 注释的地方吗??