アプリ内での利用するデータファイルの形式としてJSONが多いですね。
各種サービスのWeb APIなどで取得するデータの形式にもJSONが使われていることが多いです。
JSONObjectに読み込んだデータから指定のデータを取得する際、
JSONObject.getString()
や、
JSONObject.getInt()
等を利用するという説明をしていることが多く、私も初めはそのようにしていました。
しかし、上記APIを利用し、指定のデータが存在しない場合は例外(Exception)が発生します。
JSONデータを柔軟な設計にし、データが存在したり、存在しなかったりするケースも含めている場合、例外を発生しないようにするには、あらかじめJSONObject内に指定データがあるかどうかを確認する必要があります。これではコード的に行数が増えてしまいますので、optString()やoptInt()等の利用をお勧めします。
これらのAPIは、JSONObject内にデータが存在しない場合は、デフォルト値を返すようにすることができますので、データ有無を事前にチェックする必要がなく、スマートなコーディングができます。
JSONObject data; // 名前を取得 String name = data.optString("name","名前なし"); // 年齢を取得 int age = data.optInt("age",0);