Harsha M V
Harsha M V

Reputation: 54979

Android JSON Object

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

Answers (4)

Shalin
Shalin

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

Houcine
Houcine

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

user658042
user658042

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

RoToRa
RoToRa

Reputation: 38441

response isn't an array but an object. Use getJSONObject and JSONObject instead of getJSONArray and JSONArray.

Upvotes: 1

Related Questions