使用jackson反序列化嵌套JSON数组



在我的应用程序中,我正在使用这样的对象:

public class User {
private String name;
private int age;
}

我调用了一个API,响应看起来像:

{
response: {
result: [
{
name: x
age: y
},
{
name: x
age: y
},
...
}
}

无论如何,我想打电话给User[] users = restTemplate.getForObject(url, ...)并获得我的用户列表。但是,我不确定如何解析json响应并使用Jackson创建User列表。有人有什么建议吗?

Jackson可以处理带有POJO值的泛型集合:

try {
Map<String, Map<String, List<User>>> result = mapper.readValue(response, new TypeReference<Map<String, Map<String, List<User>>>>() {});

List<User> users = result.get("response").get("result");
for (User user : users) {
System.out.println(user.getName());
}
} catch (Exception e) {
e.printStackTrace();
}
public class User {
private String name;
private int age;
}
class Response{
private User[] result;
// omitted getter and setter
}
class OuterResponse{
private Response response;
// omitted getter and setter
}
OuterResponse outerResponse = restTemplate.getForObject(url, ...);
User[] users=outerResponse.getResponse().getResult();

最新更新