オブジェクトが JSON 文字列に存在するかどうかを知り、そのオブジェクトの存在に応じてさまざまなことを行う必要があります。存在しない場合は、NullPonterException をスローするため、オブジェクトを省略したいと考えています。ifを使用してみましたが、成功しませんでした...オブジェクトの存在を確認する方法を教えてもらえますか?
前もって感謝します!
オブジェクトが JSON 文字列に存在するかどうかを知り、そのオブジェクトの存在に応じてさまざまなことを行う必要があります。存在しない場合は、NullPonterException をスローするため、オブジェクトを省略したいと考えています。ifを使用してみましたが、成功しませんでした...オブジェクトの存在を確認する方法を教えてもらえますか?
前もって感謝します!
次のようなことを試してください。
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
}
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)
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)
または..もっと簡潔に...
myJSONObject.isNull("myfield")?"":myJSONObject.getString("myfield")