2012-04-06 24 views
3

オブジェクトがJSON文字列内に存在するかどうかを知る必要があります。存在しない場合は、NullPonterExceptionをスローするためオブジェクトを省略します。私はを使用しようとしましたが、が成功しませんでした...誰かが私にどのようにオブジェクトの存在を確認できますか教えてもらえますか?オブジェクトがJSON内に存在するかどうかをチェック

ありがとうございます!

String jsonString = yourJsonString; 
String nameOfObjectInQuestion = "yourObjectInQuestion"; 
JSONObject json = null; 
JSONObject objectInQuestion = null; 
try { 
    json = new JSONObject(jsonString); 
    objectInQuestion = json.getJSONObject(nameOfObjectInQuestion); 
} 
catch (JSONException ignored) {} 

if (objectInQuestion == null) { 
    // Stomp your feet 
} 
else { 
    // Clap your hands 
} 
+2

私たちにあなたがしようとしたコードを表示します。 –

+1

コードを表示しますが、初心者です。たとえば、オプトメソッドを使用してみましたか? 'JSONObject#optJSONObject(String)'など?例外の代わりにマッピングが存在しない場合は 'null'を返します。 – Jens

答えて

14

は、次のようなものを試してみてください。 "真ブールのisNull(文字列名) 返します。このオブジェクトは、名前のためか、それは、値がNULLであるマッピングを持っている場合は何のマッピングを持っていない場合。"

JSONObject contact = venueitem.getJSONObject("contact"); 

if (contact.isNull("formattedPhone") == false) 
    venue.phone = contact.getString("formattedPhone"); 
else 
    { 
    ... 
    } 

出典: http://developer.android.com/reference/org/json/JSONObject.html#isNull(java.lang.String)

+0

Philipsそれは魅力のように機能します!私の問題は解決されますが... GSONライブラリで同じ結果を得る方法はありますか?どうもありがとうございました! –

4

あなたはJSONObjects上のisNull()関数を使用することができます。

+0

次の行で例外が発生します。 JSONObject contact = venueitem.getJSONObject( "contact"); –

1

またはより簡潔...

myJSONObject.isNull("myfield")?"":myJSONObject.getString("myfield") 
関連する問題