Web サービス呼び出しから JSONObject を取得しています。
JSONObject result = ...........
私がアクセスしているときresult.getString("fieldName");
そのJSONObjectに存在すればfieldName
正常に動作しています。存在しない場合は例外が発生します。JSONObject["fieldName"] not found.
これに使用できますtry catch
。ただし、このようなフィールドが 20 個近くあります。これには 20 個の try catch ブロックを使用する必要がありますか、それともこれに代わる方法がありますか。よろしくお願いします...
ベストアンサー1
方法があるJSONObject#has(key)
まさにこの目的のために用意されています。この方法では、各フィールドの例外処理を回避できます。
if(result.has("fieldName")) {
// It exists, do your stuff
} else {
// It doesn't exist, do nothing
}
また、JSONObject#isNull(str)
そうであるかnull
どうかを確認する方法。
if(result.isNull("fieldName")) {
// It doesn't exist, do nothing
} else {
// It exists, do your stuff
}
また、ロジックを共通メソッドに移動することもできます (コードの再利用性のため)。このメソッドでは、 any JSONObject
& フィールド名を渡すことができ、メソッドはフィールドが存在するかどうかを返します。