2015-11-23 39 views
-1

我無法將我的JSON轉換爲POJO對象。無法反序列化test.MyPojo實例出START_ARRAY令牌

JSON輸出爲:

[ { 
    "id" : 1, 
    "name" : "latha" 
}, { 
    "id" : 2, 
    "name" : "kala" 
}] 

我的POJO是:

public class NSCLockData { 

    private int id; 
    private String name; 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

我的班級:

public void insert(org.springframework.messaging.Message<?> msg) throws JsonGenerationException, JsonMappingException, IOException{ 

    ObjectMapper mapper = new ObjectMapper(); 

    try { 
     MyPojo data=mapper.readValue(msg.getPayload().toString(), MyPojo.class); 
     this.sessionFactory.getCurrentSession().saveOrUpdate(data); 
    } catch (JsonGenerationException e) { 
     e.printStackTrace(); 
    } catch (JsonMappingException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 
+1

請注意,你有對象的數組.. – Maroun

+0

@MarounMaroun說的是真的,你不能從json數組創建一個POJO的實例。你也試圖創建一個MyPojo的實例,但是你的類被稱爲NSCLockData – Simon

+0

對不起,我的pojo類是MyPojo.class。試過後也有這個錯誤。我該如何糾正這一點? – jeni

回答

0

創建新的POJO所以,它應該是數組NSLoackData

public class ArrayofNS implements Serialaizable(){ 

// create serialisation 

private List<NSLoackData> arrayof; 

// getter and setteers 
} 

在你的主代碼,你需要傳入的JSON轉換成你的POJO類寫類似下面

考慮u有上述JSON(陣列)在一個JSONObject稱爲結果;

JSONArray js = new JSOANArray(); 

你上面的JSON轉換成JSONArray與上面的代碼行

js = result; 

迭代通過循環,並獲得價值

List<NSLockData> lk = new ArrayList<NSLockData>(); 
NSLockData data; 
for(I=0;i<=js.length();I++){ 
data = new NSLockDate(); 
data = new ObjectMapper.readValue(js.get(i).toString(),NSLOckData.class); 
lk.add(data); 
} 
+0

非常感謝你。 – jeni

+0

Jeni,如果代碼有效,你可以接受答案 – KaMaL

+0

我只是使用不同的 – jeni

相關問題