3

オブジェクトが JSON 文字列に存在するかどうかを知り、そのオブジェクトの存在に応じてさまざまなことを行う必要があります。存在しない場合は、NullPonterException をスローするため、オブジェクトを省略したいと考えています。ifを使用してみましたが、成功しませんでした...オブジェクトの存在を確認する方法を教えてもらえますか?

前もって感謝します!

4

4 に答える 4

14

次のようなことを試してください。

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
}
于 2012-04-06T21:52:38.883 に答える
4

JSONObjects で isNull() 関数を使用できます。

"boolean isNull(String name) このオブジェクトに name のマッピングがない場合、または値が NULL のマッピングがある場合は true を返します。 "

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)

于 2012-12-09T00:54:48.733 に答える
2

JSONObject.has(String) を使用します。

 JSONObject MyObject = null;
 if(JSONObject.has("ObjectName")){
        MyObject = JSONObject.getJSONObject("ObjectName");
 }

 if(MyObject != null){
  // do stuff
 }

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

于 2015-05-27T13:37:43.540 に答える
1

または..もっと簡潔に...

myJSONObject.isNull("myfield")?"":myJSONObject.getString("myfield")
于 2013-11-29T11:18:30.487 に答える