Reputation: 54979
I have a JSON format like this
{"response":{"status":true,"result":"user_exists"}}
Now i am trying to retrieve the Status value to do some logic
JSONObject jData = new JSONObject(data);
JSONArray response = jData.getJSONArray("response");
But i am getting the following error
org.json.JSONException: Value {"result":"user_exists","status":true} at response of type org.json.JSONObject cannot be converted to JSONArray
how to retrieve an Object from inside and Object ?
Upvotes: 5
Views: 4439
Reputation: 424
You have to first navigate to the response object by
JSONObject response = jData.getJSONObject("response")
instead of JSONArray
, as response is a object.
Upvotes: 1
Reputation: 24181
you are trying to retreive the status attribut from a JSONArray
but , you don't have any JSONArray
in your Code , ( JSONArray
is surrounded by []
, and JSONObject
is surrounded by {}
) ,
So to retreive the status value , try this :
JSONObject jData = new JSONObject(data);
JSONObject response = jData.getJSONObject("response");
boolean status = response.getBoolean("status");
Upvotes: 4
Reputation:
response
is a JSONObject, not a JSONArray. Array objects are surrounded by these []
brackets, objects are with the normal ones {}
. (See json.org for more format information)
Change
JSONArray response = jData.getJSONArray("response");
to
JSONObject response = jData.getJSONObject("response");
Upvotes: 5
Reputation: 38441
response
isn't an array but an object. Use getJSONObject
and JSONObject
instead of getJSONArray
and JSONArray
.
Upvotes: 1