我正在尝试反序列化一个json字符串以匹配一个对象但我不能用JSONProperties
这是我的对象
public class Feedback{
@JsonProperty("event_id")
private long eventId;
//getter and setter
}
我得到的JSON字符串是
{..., "event_id":1111111111, ....}
当我将字符串反序列化为Feedback
时,刚跳过eventId ......
我以这种方式反序列化
ObjectMapper mapper = new ObjectMapper();
Feedback feedback = mapper.readValue(json, Feedback);
我在Feedback中还有其他字段,它们具有相同的json字段名称,并且它们显然正确映射
答案 0 :(得分:4)
注释getter而不是注释字段:
public class Feedback {
private long eventId;
@JsonProperty("event_id")
public long getEventId() {
return eventId;
}
public void setEventId(long eventId) {
this.eventId = eventId;
}
}
答案 1 :(得分:0)
这是一个非常常见的错误。 一定要使用
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
OR
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.ObjectMapper;
混合导入会导致问题。
第一个是新版本,第二个是旧版本。使用第一个;)