I was looking over the documentation for JSONObject
when I noticed the two methods: getJSONObject(String key)
and optJSONObject(String key)
. From the documentation, I figured they did nearly the same thing with one difference: If the key or value isn't found, then getJSONObject()
throws a JSONException
whereas optJSONObject()
simply returns null
.
getJSONObject()
and optJSONObject()
?get
over opt
and vice-versa?A value in the JSON may be optional, so using optJSONObject is better because you just have to check if it is null or not and continue your function.
optString
returns the empty string ("") if the key you specify doesn't exist. getString
throws a JSONException
.
getJSONObject()
throws an exception when that object is not found. optJSONObject()
returns null.This option is a bit easier to read if you are doing a lot more when the object isn't present.
JSONObject object = jsonResponse.optJSONObject("object");
if(object == null)
{
// handle not existing here
}
This option is a bit easier if you are only throwing another exception or doing something else that's one line.
JSONObject object = null;
try
{
object = jsonResponse.getJSONObject("object");
}
catch(JSONException je)
{
// handle object not found here
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With