【发布时间】:2017-10-22 08:11:00
【问题描述】:
我收到以下格式的 API 响应。我正在开发 Android 项目
{
Course: [
{
"Year": 2017,
"CourseTitle": "..",
"Quarter": "autumn",
},
{
"Year": 2017,
"CourseTitle": "..",
"Quarter": "autumn",
}
],
Instructor: {
"name": ,
"address":
}
}
我的目标是获取 Course 的课程数组,并将其分配给我使用 online tool 创建的 POJO(普通的旧 java 对象)。我也在使用 GSON 库。我确实在网上找到了不同的实现,最后我使用了这个,并且我能够过滤嵌套对象“Courses”,其中包含课程的数组对象。
JsonParser parser = new JsonParser();
JsonObject element = (JsonObject)parser.parse(response);
JsonElement responseWrapper = element.getAsJsonArray("Courses");
当我使用调试器工具查看 responseWrapper 时,它当然包含一个 JSON 数组(对象)。我想将这些数据分配给我创建的“课程”POJO 类
public class Course 实现 Parcelable {
private String href;
private int year;
private String courseTitle;
private String quarter;
private String courseTitleLong;
private String curriculumAbbreviation;
private String courseNumber;
}
我添加了以下行。
Course[] courseList = gson.fromJson(responseWrapper,Course[].class);
CourseList 是一个 Course 对象数组,但是当我查看使用调试器工具得到的结果时,所有字段变量都是“null”。我该如何解决这个问题?有没有更好的方法我应该接近?整个目的是获取课程对象数组,以便我可以对其进行操作以进行显示。
【问题讨论】:
-
问题已解决。我的问题是我正在使用自动生成的 pojo 类。如果您查看成员变量,则名称与我从 api 获得的名称不匹配。例如,在 API 上,键是“CourseTitle”,而在我的 pojo 类中,我将它作为“courseTitle”。这适用于所有成员变量。昨天,花了我一个小时左右终于睡着了,我早上醒来,我看到了问题。我学到的教训是,如果你坚持某件事,就把它放在一边或休息一下。