2017-09-04 92 views
0

我试图反序列化JSON字符串匹配的对象,但我不能JSONProperties春天 - 杰克逊一个JSON映射到特定对象场

做到这一点这是我的目标

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); 

我也曾经在反馈等领域具有的JSON字段的名称相同,他们都映射正确明显

+0

你尝试用事项标识或EVENTID反序列化? –

+0

我需要将event_id映射到eventId – besmart

+0

发布完整限定名称的'Ojbect'。我闻到鱼。 – Manza

回答

3

注释,吸气,而不是注释字段:

public class Feedback { 

    private long eventId; 

    @JsonProperty("event_id") 
    public long getEventId() { 
     return eventId; 
    } 

    public void setEventId(long eventId) { 
     this.eventId = eventId; 
    } 
} 
+1

谢谢,它现在完美 – besmart

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; 

混合的进口会导致问题。

第一个是新版本,第二个是旧版本。使用第一个;)

+0

我已经使用第一个,谢谢! – besmart