次の形式でAPIの応答を取得しています。私は私の目標は、コースのコース配列を取得し、私はonline toolを使用して作成したPOJO(プレーン古いJavaオブジェクト)に割り当てることであるJSON配列をpojoオブジェクト配列に変更する
{
Course: [
{
"Year": 2017,
"CourseTitle": "..",
"Quarter": "autumn",
},
{
"Year": 2017,
"CourseTitle": "..",
"Quarter": "autumn",
}
],
Instructor: {
"name": ,
"address":
}
}
のAndroidプロジェクトに取り組んでいます。私はGSONライブラリも使用しています。オンラインでさまざまな実装が見つかったので、やっとこれを使用して、コースの配列オブジェクトを保持する入れ子オブジェクト「コース」をフィルタリングできました。
JsonParser parser = new JsonParser();
JsonObject element = (JsonObject)parser.parse(response);
JsonElement responseWrapper = element.getAsJsonArray("Courses");
デバッガツールを使用してresponseWrapperを見ると、コース(オブジェクト)のJSON配列が保持されます。私は
パブリッククラスコースは、私は、次の行を追加しParcelable {
private String href;
private int year;
private String courseTitle;
private String quarter;
private String courseTitleLong;
private String curriculumAbbreviation;
private String courseNumber;
}
を実装を作成し、「コース」POJOクラスにこれらのデータを割り当てたいと思いました。
Course[] courseList = gson.fromJson(responseWrapper,Course[].class);
CourseListはCourseオブジェクトの配列ですが、私がデバッガツールを使って得たものを見ると、すべてのフィールド変数は "null"です。どうすればこの問題を解決できますか?私が近づいたはずのより良い方法はありますか?全体の目的はコースオブジェクトの配列を取得するので、私はそれを表示するために操作することができます。
問題が解決しました。私の問題は、自動生成pojoクラスを使用していたことです。メンバー変数を見ると、名前がapiから取得した名前と一致しません。たとえば、APIではキーは「CourseTitle」で、私のpojoクラスでは「courseTitle」としています。これは、すべてのメンバー変数に当てはまります。昨日、私は1時間かかりました、それでは、寝ました。朝起きました。問題が見えます。私が学んだレッスンは、あなたが物事にこだわっていれば、それを脇に置いたり、休憩したりすることです。 – user1986244