JSON例外を回避するためにJSONオブジェクトに値が存在するかどうかをチェックする 質問する

JSON例外を回避するためにJSONオブジェクトに値が存在するかどうかをチェックする 質問する

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& フィールド名を渡すことができ、メソッドはフィールドが存在するかどうかを返します。

おすすめ記事