私はJSONを初めて使用し、JavaでGSONを使用してこのレイアウトを解析するのに本当に苦労しています
{"time_entries":
[
{"hours":1.0,
"id":311,
"created_on":"2012-11-02T14:53:38Z",
"user":{"id":7,"name":"blah"},
"issue":{"id":266},
"activity":{"id":10,"name":"blah"},
"updated_on":"2012-11-02T14:53:38Z",
"comments":"blah",
"spent_on":"2012-11-02",
"project":{"id":10,"name":"blah"}},
{"hours":6.0,
"id":310,
"created_on":"2012-11-02T13:49:24Z",
"user":{"id":4,"name":"blah"},
"issue":{"id":258},
"activity":{"id":9,"name":"blah"},
"updated_on":"2012-11-02T13:49:24Z",
"comments":"blah",
"spent_on":"2012-11-02",
"project":{"id":11,"name":"blah"
}}
],
"offset":0,
"limit":2,
"total_count":306
}
それが役立つ場合は、RedmineAPIが時間エントリに対して提供する出力です。 オブジェクトや配列などの基本的なJSONの概念のいくつかを理解するのに苦労しており、これに似たレイアウトの例を見つけることができませんでした。
私が読んだチュートリアルを使用する際の私の主な懸念は、複数のIDフィールドが混乱することです。
結び目を作らずにこれを解析するための最良の方法は何ですか?
私はGsonを使用するつもりはなく、Jacksonまたは組み込みライブラリを使用したソリューションがあれば幸いです。最終的な目標はAndroidの実装であるため、シリアル化を使用することをお勧めします。
ありがとう
編集:
「オブジェクトモデル」での私の試み
public class TimeResponse {
public List<Time_Entry> time_entries;
@SerializedName("hours")
public String hours;
@SerializedName("id")
public int id;
@SerializedName("created_on")
public String created_on;
@SerializedName("name")
public String name;
@SerializedName("updated_on")
public int updated_on;
public int page;
@SerializedName("comments")
public double comments;
@SerializedName("spent_on")
public String spent_on;
@SerializedName("offset")
public String offset;
@SerializedName("limit")
public String limit;
@SerializedName("total_count")
public String total_count;
}
結果リストに何を書くべきかわからず(必要な場合)、IDと名前の文字列を複数回使用されているにもかかわらず宣言したのは1回だけですか?
時間フィールドに実際に何が含まれているかを調べている最中の時間に文字列を使用するべきではないことを認識しています。最後の3つのフィールドが現在TwitterAPIで同じように表されていないという点で、チュートリアルは少し古くなっていると思います。