2015-11-23 36 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

相关问题