Org.json.JSONObject no se puede convertir en JSONArray

Estoy recibiendo una excepción mientras trabajaba en json. Mi clase JSONPresr es la siguiente

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONException; import org.json.JSONObject; import android.os.AsyncTask; import android.util.Log; public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String json = ""; // constructor public JSONParser() { } public JSONObject getJSONFromUrl(String url) { // Making HTTP request try { // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "UTF-8"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); json = sb.toString(); System.out.println(" value in json sting"+json); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } // try parse the string to a JSON object try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); Log.e("JSON Parser", "Error parsing data [" + e.getMessage()+"] "+json); System.out.println(" error is here"); } // return JSON String return jObj; } } 

Estoy recibiendo mis datos por este código

  String TAG_user_detail = "user_details"; String TAG_user_id = "user_id"; String TAG_user_name = "user_name"; String TAG_user_phone = "user_phone"; String TAG_ref_id = "ref_id"; JSONArray user_detail_jsonarray = null; JSONParser jParser = new JSONParser(); // getting JSON string from URL JSONObject json = jParser.getJSONFromUrl(url); try { // Getting Array of Contacts user_detail_jsonarray = json.getJSONArray(TAG_user_detail); // looping through All Contacts for(int i = 0; i < user_detail_jsonarray.length(); i++){ JSONObject c = user_detail_jsonarray.getJSONObject(i); // Storing each json item in variable int id = c.getInt(TAG_user_id); System.out.println("user id from json"+id); String name_fromjson = c.getString(TAG_user_name); System.out.println("user name from json"+name_fromjson); int phone_no_fromjson = c.getInt(TAG_user_phone); System.out.println("user phone from json"+phone_no_fromjson); int ref_id_fromjson = c.getInt(TAG_ref_id); System.out.println("user ref id from json"+ref_id_fromjson); } } catch (JSONException e) { e.printStackTrace(); } 

Pero estoy contando la excepción en esta línea

  user_detail_jsonarray = json.getJSONArray(TAG_user_detail); 

Mi mensaje Stake Trace es como

  {"ref_id":1295,"user_name":"chand","user_phone":"9620085675","user_id":"1"} at user_details of type org.json.JSONObject cannot be converted to JSONArray 

He intentado muchos enlaces, pero por desgracia no soy capaz de obtener mi resultado. Por favor, cualquier cuerpo sólo me ayude a resolver este problema. Gracias de antemano a todos

3 Solutions collect form web for “Org.json.JSONObject no se puede convertir en JSONArray”

Su claro de error que usted está intentando convertir el objeto de Json en la matriz de Json. Eso no debería.

Aquí está el código para leer su respuesta de JSON.

 String json = "Assuming that here is your JSON response"; try { JSONObject parentObject = new JSONObject(json); JSONObject userDetails = parentObject.getJSONObject("user_details"); //And then read attributes like String name = userDetails.getString("user_name"); String phone = userDetails.getString("user_phone"); String id = userDetails.getString("re‌​f_id"); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

El código anterior es para {"user_details":{"user_id":"1","user_name":"chand","user_phone":"9620085675","re‌​f_id":6386}} JSON.

Aprender de la excepción

 org.json.JSONObject cannot be converted to JSONArray 

Está recibiendo esta excepción org.json.JSONObject cannot be converted to JSONArray porque está intentando convertir JSONObject to JSONArray que no es posible.

{ Representa el nodo de objetos json

[ Representa el nodo de la matriz json

Su jsondata es el formato de objeto json. Cambia esta línea

 JsonObject user_detail_jsonobj = json.getJSONObject(TAG_user_detail); 
  • Quiero usar Xpath en Android para analizar XML
  • Envío y análisis de objetos JSON
  • Parsing Gson con Json no funciona para Android
  • JSONException: El valor del tipo java.lang.String no se puede convertir en JSONObject
  • Clase de modelo para Jackson Parser para analizar propiedades en mayúsculas
  • Obtener y analizar archivo CSV en android
  • Cómo obtener respuesta como String utilizando retrofit sin utilizar GSON o cualquier otra biblioteca en android
  • Reemplazar el analizador estándar de Android JSON para un mejor rendimiento?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.