5

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 ?

Houcine
  • 24,001
  • 13
  • 56
  • 83
Harsha M V
  • 54,075
  • 125
  • 354
  • 529

4 Answers4

5

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");
4

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");
Houcine
  • 24,001
  • 13
  • 56
  • 83
1

You have to first navigate to the response object by

JSONObject response = jData.getJSONObject("response") instead of JSONArray, as response is a object.

Reno
  • 33,594
  • 11
  • 89
  • 102
Shalin
  • 414
  • 4
  • 16
1

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

RoToRa
  • 37,635
  • 12
  • 69
  • 105