org.json.JSONObject cannot be converted to JSONArray

匿名 (未验证) 提交于 2019-12-03 01:10:02

问题:

I am getting a exception while working in json . My JSONPresr class is as follow

 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;      }      }

I am getting my data by these code

          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 

But i am countiniously getting Exception in this line

    user_detail_jsonarray = json.getJSONArray(TAG_user_detail);

My Stake Trace message is as

       {"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

I tried many link but unfortunately i am not able to get my result. Please any body just help me to solve this issue. Thanks in advance to all

回答1:

Its clear from error that you are trying to convert Json Object into Json array. That should not.

Here is the code to read your JSON response.

Above code is for JSON.



回答2:

Learn from exception

org.json.JSONObject cannot be converted to JSONArray

You are getting this exception org.json.JSONObject cannot be converted to JSONArray because you are trying to convert JSONObject to JSONArray which is not possible.

{ represents json object node

[ represents json array node



回答3:

your jsondata is json object format. change this line

JsonObject user_detail_jsonobj = json.getJSONObject(TAG_user_detail);


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!