gsonを使うと、jsonを簡単にパースできる。というのを聞いたので使ってみました。
コツというか簡単な使い方の説明をします。
まずクラスを用意したりもしますが、
エラーのかどうかの判定は自分で判別をします。(ここはJsonObject jo = new JsonObject(str)で自分でstatusとかそういうのを取得して判別します。)
で、例えば、
result:{id:1,name:hello}
みたいに入れ子構造になっている場合には、面倒なので、resultの中のみを取り出します・
resultJsonObjectみたいなものをがあった場合
クラスで帰ってくる値と同じものを用意します。
ResultData.java
みたいのを作って、
public int id; public String name;
を用意します。
で、
Gson gson = new Gson(); ResultData resultData = gson.fromJson(resultJsonObject.toString(), ResultData.class);
をすると該当のクラスの変数内に、対応する値がそのまま入ってくれます。
で、更に入れ子になる場合には、JsonObjectはそれ用のクラスを作って(innerData)として、配列の場合には、ArrayListを配置しておくと、jsonのキーと同じ名前の変数に該当のものが含まれます。
難点としては、値が存在しなくても、エラーも出ないので、サーバーの方の返り値がおかしくなっても気づけない事かと思います。