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

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); 
  • Análisis de Android JSONObject
  • Json Parsing de Url en Android, no funciona
  • Envío y análisis de objetos JSON
  • cómo cambiar los datos en un idioma diferente que viene del servidor?
  • Base de datos de Android más rápida
  • JSON VS simple manipulación de cadenas para analizar HttpRequest en Android
  • Analizador de SAX de Android que no obtiene texto completo entre etiquetas
  • Errores de json-parsing en tiempo de ejecución
  • Desvío de paquetes VPN
  • Cómo analizar este JSON Array en android
  • Obtener y analizar archivo CSV en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.