这是我的JSON数组:
[
{
"firstName" : "abc",
"lastName" : "xyz"
},
{
"firstName" : "pqr",
"lastName" : "str"
}
]
我在我的String对象中有这个。现在我想把它转换成Java对象并存储在java对象列表中。例如,在学生对象中。我使用以下代码将其转换为Java对象列表:
ObjectMapper mapper = new ObjectMapper();
StudentList studentList = mapper.readValue(jsonString, StudentList.class);
我的List类是:-
public class StudentList {
private List<Student> participantList = new ArrayList<Student>();
//getters and setters
}
我的学生对象是:-
class Student {
String firstName;
String lastName;
//getters and setters
}
我是不是漏掉了什么?我得到了以下例外:-
Exception : com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of com.aa.Student out of START_ARRAY token
发布于 2017-06-16 20:37:40
您正在请求Jackson解析StudentList
。告诉它解析一个(学生的) List
。由于List
是通用的,因此通常会使用TypeReference
List<Student> participantJsonList = mapper.readValue(jsonString, new TypeReference<List<Student>>(){});
发布于 2020-03-01 20:10:44
对于任何还在寻找答案的人来说:
1.将jackson-databind
库添加到构建工具中
2.在你的代码中:
ObjectMapper mapper = new ObjectMapper();
List<Student> studentList = new ArrayList<>();
studentList = Arrays.asList(mapper.readValue(jsonStringArray, Student[].class));
发布于 2018-06-18 14:28:02
对于此场景,您也可以使用Gson。
Gson gson = new Gson();
NameList nameList = gson.fromJson(data, NameList.class);
List<Name> list = nameList.getList();
您的NameList类可能如下所示:
class NameList{
List<Name> list;
//getter and setter
}
https://stackoverflow.com/questions/44589381
复制相似问题