blitz-time アプリ開発ブログ

Androidアプリ開発などのTips集

【Androidアプリ開発】例外が発生しないJSONファイルのデータ読み込み

アプリ内での利用するデータファイルの形式として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);