2016-10-31 5 views
1

多くのjsonオブジェクトとプロパティが表示されたJSONレスポンスに対処するための推奨される方法は何かを知るためには助けが必要です(そのうちのいくつかは、ユーザーがlistitemをタップすると詳細ウィンドウに表示されます)。 AndroidのListView多くのオブジェクトとプロパティを持つJson配列の応答に対処するには?

これまでのところ、私はあなたがプロパティを取得するJSONObjectクラスを使用する場合があります知っている:

JSONObject resultObject = resultsArray.getJSONObject(i); 

String title = resultObject.getString("original_title"); 
String posterPath = resultObject.getString("poster_path"); 
String overview = resultObject.getString("overview"); 
String date = resultObject.getString("release_date"); 


// Create a new {@link Movie} object with the magnitude, location, time, 
// and url from the JSON response. 
Movie movie = new Movie(title, posterPath, overview, date); 

// Add the new {@link Movie} to the list of movies. 
movies.add(movie); 

をしかし、私の主な疑問は、JSONのプロパティが追加される必要があるより、すなわち20プロパティである場合に何が起こるかでありますリストビュー:

JSONのような物体、含まれていることを考慮?最良の選択肢だろう何を:映画など、俳優、統計、

は私がするために、異なるJava豆クラスを作成する必要がありますインスタンスを作成しますか?

Movie movie = new Movie(title, posterPath, overview, date); 

ですから、私は巨大なコンストラクタパラメータを持つことを避けたいと思います。クラスを1つだけ作成してビルダーパターンを使用する必要がありますか?

+0

を追加したい場合は、あなたのMovieクラスを更新する必要が

GsonBuilder gsonBuilder = new GsonBuilder(); Gson gson = gsonBuilder.create(); Movie movie = gson.fromJson(jsonInput, Movie.class); 

あなたMovieクラスは次のようになります:

class Movie { String title; String posterPath; String overview; String date; } 

し、それを解析しますJSONシリアライゼーションライブラリを使用して自分自身を解析することは考えていませんか? –

+0

GSONまたはジャクソンジャーを試すことができます。最も簡単な方法。 – HARDI

答えて

1

GSONライブラリを使用すると、JSONデータを逆シリアル化できます。そして、あなたはちょうどあなたが/更新フィールド

+0

うわー! GSONライブラリはすばらしいですが、Java Beanクラスのすべてのパラメータでコンストラクタを定義して、@Bertrand Martelが動作するようにする必要があるかどうか疑問があります。この回答に感謝します。 – ricardoorellana

+1

ここでは複雑なデータモデルの例はありません。https://gist.github.com/akinaru/384152c20e73bd288cfe3f3a41469453 –

関連する問題