如何在 Spring 引导中使用外部 API
How to consume an external API in Spring Boot
我想从 API 消费 Json。 API 看起来像这样:
{
"allStudents": [
{
"fname": "Jack",
"age": 22,
"courses": {
"name": "AI"
}
},
{
..
},
..
]
}
我正在为所有数据都在一个数组中这一事实而苦苦挣扎。
我创建了一个Student Class
public class Student {
private String name;
private int age;
private List<Course> courses;
}
所有的 getter 和 setter。
如何使用此 API 中的数据?
我尝试了以下方法:
Student[] students= restTemplate.getForObject(url, Student[].class);
但这不起作用并给出错误
JSON parse error: Cannot deserialize instance of Student out of START_OBJECT token
您需要解析外部对象。
再添加一个class
public class StudentList {
List<Student> allStudents;
}
然后使用.getForObject(url, StudentList.class);
你需要一个
class ResultContainer {
Student[] allStudents;
}
然后解析结果为
Student[] students = restTemplate.getForObject(url, ResultContainer.class).allStudents;
我想从 API 消费 Json。 API 看起来像这样:
{
"allStudents": [
{
"fname": "Jack",
"age": 22,
"courses": {
"name": "AI"
}
},
{
..
},
..
]
}
我正在为所有数据都在一个数组中这一事实而苦苦挣扎。
我创建了一个Student Class
public class Student {
private String name;
private int age;
private List<Course> courses;
}
所有的 getter 和 setter。
如何使用此 API 中的数据?
我尝试了以下方法:
Student[] students= restTemplate.getForObject(url, Student[].class);
但这不起作用并给出错误
JSON parse error: Cannot deserialize instance of Student out of START_OBJECT token
您需要解析外部对象。
再添加一个class
public class StudentList {
List<Student> allStudents;
}
然后使用.getForObject(url, StudentList.class);
你需要一个
class ResultContainer {
Student[] allStudents;
}
然后解析结果为
Student[] students = restTemplate.getForObject(url, ResultContainer.class).allStudents;