如何将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 }