如何将JSON字符串转换为Java对象的列表?

这是我的JSON数组: –

[ { "firstName" : "abc", "lastName" : "xyz" }, { "firstName" : "pqr", "lastName" : "str" } ] 

我在我的String对象中有这个。 现在我想将其转换为Java对象并将其存储在Java对象的List中。 例如在Student对象中。 我使用下面的代码将其转换为Java对象列表: –

 ObjectMapper mapper = new ObjectMapper(); StudentList studentList = mapper.readValue(jsonString, StudentList.class); 

我的列表类是: –

 public class StudentList { private List participantList = new ArrayList(); //getters and setters } 

我的学生对象是: –

 class Student { String firstName; String lastName; //getters and setters } 

我在这里错过了什么吗? 我得到以下exception: –

 Exception : com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of com.aa.Student out of START_ARRAY token 

您要求Jackson解析StudentList 。 告诉它解析一个List (学生)。 由于List是通用的,因此通常使用TypeReference

 List participantJsonList = mapper.readValue(jsonString, new TypeReference>(){}); 

您也可以在此方案中使用Gson。

 Gson gson = new Gson(); NameList nameList = gson.fromJson(data, NameList.class); List list = nameList.getList(); 

您的NameList类可能如下所示:

 class NameList{ List list; //getter and setter }