本文介绍了org.json.JSONObject不能转换为JSONArray的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到一个例外JSON工作时。我的JSON preSR类是如下

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;

    }

    }

我对这些code让我的数据

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

但我countiniously得到异常在这一行

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

推荐答案

它明确从您正试图转换JSON对象成JSON数组错误。这不应该。

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

下面是code读你的JSON响应。

Here is the code to read your JSON response.

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

以上code是<$c$c>{"user_details":{"user_id":"1","user_name":"chand","user_phone":"9620085675","re‌​f_id":6386}} JSON。

这篇关于org.json.JSONObject不能转换为JSONArray的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-30 21:21