java.lang.NoSuchMethodError:org.json.JSONArray android错误

java.lang.NoSuchMethodError:org.json.JSONArray android错误,java,android,json,eclipse,Java,Android,Json,Eclipse,在我的应用程序中,我尝试通过JSON解析数据,并尝试在android的listview中显示。但是我在解析数据时遇到java.lang.NoSuchMethodError:org.json.JSONArray错误。这是我用来解析数据的链接 为此,我使用了以下代码: private void connect() { String data; JSONArray json; try { DefaultHttpClien

在我的应用程序中,我尝试通过JSON解析数据,并尝试在android的listview中显示。但是我在解析数据时遇到
java.lang.NoSuchMethodError:org.json.JSONArray
错误。这是我用来解析数据的链接

为此,我使用了以下代码:

private void connect() 
    {
String data;
        JSONArray json;
        try
        {
            DefaultHttpClient client = new DefaultHttpClient();
            HttpGet request = new HttpGet("http://demo.tugain.com/tapme/RetriveAll.php?q=cat");
            HttpResponse response = client.execute(request);
            HttpEntity entity=response.getEntity();
            data=EntityUtils.toString(entity);
            Log.e("STRING", data);

            try
            {
                JSONObject obj=null;

                json=new JSONArray(data);
                JSONArray actualJson=json.getJSONArray(0);

                for(int i=0;i<actualJson.length();i++)
                {
                    obj=actualJson.getJSONObject(i);

                    name=obj.getString("name");
                    Log.e("name",name);
                    mAdapter.addSectionHeaderItem(name);
                    setListAdapter(mAdapter);

                    //JSONArray json1=new JSONArray("data");
                    JSONArray json1=new JSONArray(obj.getJSONArray("data"));

                    for(int j=0;j< json1.length();j++)
                    {
                        JSONObject obj1=null;
                        obj1 = json1.getJSONObject(j);
                        CompName= obj1.getString("vendor_name");
                        CompID=obj1.getString("vendor_id");
                        Log.e("vender",CompName);
                        Log.e("id",CompID);
                    }
                }
            }
            catch (JSONException e) 
            {
                e.printStackTrace();
            }
        } catch (ClientProtocolException e) {
            Log.d("HTTPCLIENT", e.getLocalizedMessage());
        } catch (IOException e) {
            Log.d("HTTPCLIENT", e.getLocalizedMessage());
        }
}
请尝试此代码

    try
        {
            String data ="YOUR JSON ARRAY RESULT";
            JSONObject obj=null;
            JSONArray jsonArr =new JSONArray(data).getJSONArray(0);

            for(int i=0;i<jsonArr.length();i++)
            {

                String name=jsonArr.getJSONObject(i).getString("name");
                Log.e("name",name);

                //mAdapter.addSectionHeaderItem(name);
                //setListAdapter(mAdapter);

                JSONArray dataArray =new JSONArray();
                dataArray = jsonArr.getJSONObject(i).getJSONArray("data");

                for(int j=0;j<dataArray.length();j++)
                {
                    JSONObject dataObject = new JSONObject();
                    dataObject = dataArray.getJSONObject(j);
                    String CompName= dataObject.getString("vendor_name");
                    String CompID= dataObject.getString("vendor_id");

                    Log.e("vender",CompName);
                    Log.e("id",CompID);

                }
            }
        }
        catch (JSONException e) 
        {
            e.printStackTrace();
        }
试试看
{
String data=“您的JSON数组结果”;
JSONObject对象j=null;
JSONArray jsonArr=新的JSONArray(数据).getJSONArray(0);

对于(int i=0;i试试这个,我已经对连接方法做了一些更改

private void connect() {
    String data;
    JSONArray json;
    try {
        DefaultHttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet(
                "http://demo.tugain.com/tapme/RetriveAll.php?q=cat");
        HttpResponse response = client.execute(request);
        HttpEntity entity = response.getEntity();
        data = EntityUtils.toString(entity);
        Log.e("STRING", data);

        try {
            JSONObject obj = null;

            json = new JSONArray(data);
            JSONArray actualJson = json.getJSONArray(0);

            for (int i = 0; i < actualJson.length(); i++) {
                obj = actualJson.getJSONObject(i);

                String name = obj.getString("name");
                Log.e("STRING", name);
                // mAdapter.addSectionHeaderItem(name);
                // setListAdapter(mAdapter);

                // JSONArray json1=new JSONArray("data");
                JSONArray json1 =obj.getJSONArray("data");

                for (int j = 0; j < json1.length(); j++) {

                JSONObject obj1= json1.getJSONObject(j);
                    String CompName= obj1.getString("vendor_name");

                    Log.e("STRING", CompName);
                    // CompID=obj1.getString("vendor_id");
                    // Log.e("vender",CompName);
                    // Log.e("id",CompID);
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    } catch (ClientProtocolException e) {
        Log.d("HTTPCLIENT", e.getLocalizedMessage());
    } catch (IOException e) {
        Log.d("HTTPCLIENT", e.getLocalizedMessage());
    }
}
private void connect(){
字符串数据;
JSONArray-json;
试一试{
DefaultHttpClient=新的DefaultHttpClient();
HttpGet请求=新HttpGet(
"http://demo.tugain.com/tapme/RetriveAll.php?q=cat");
HttpResponse response=client.execute(请求);
HttpEntity=response.getEntity();
数据=EntityUtils.toString(实体);
Log.e(“字符串”,数据);
试一试{
JSONObject对象j=null;
json=新的JSONArray(数据);
JSONArray actualJson=json.getJSONArray(0);
for(int i=0;i
您是否尝试过使用
JSONArray json1=obj.getJSONArray(“数据”);
是…但没有得到输出…!!!:(尝试我发布的代码您的json启动数组->数组->obj,而不是数组->obj。为什么不需要数组?
    try
        {
            String data ="YOUR JSON ARRAY RESULT";
            JSONObject obj=null;
            JSONArray jsonArr =new JSONArray(data).getJSONArray(0);

            for(int i=0;i<jsonArr.length();i++)
            {

                String name=jsonArr.getJSONObject(i).getString("name");
                Log.e("name",name);

                //mAdapter.addSectionHeaderItem(name);
                //setListAdapter(mAdapter);

                JSONArray dataArray =new JSONArray();
                dataArray = jsonArr.getJSONObject(i).getJSONArray("data");

                for(int j=0;j<dataArray.length();j++)
                {
                    JSONObject dataObject = new JSONObject();
                    dataObject = dataArray.getJSONObject(j);
                    String CompName= dataObject.getString("vendor_name");
                    String CompID= dataObject.getString("vendor_id");

                    Log.e("vender",CompName);
                    Log.e("id",CompID);

                }
            }
        }
        catch (JSONException e) 
        {
            e.printStackTrace();
        }
private void connect() {
    String data;
    JSONArray json;
    try {
        DefaultHttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet(
                "http://demo.tugain.com/tapme/RetriveAll.php?q=cat");
        HttpResponse response = client.execute(request);
        HttpEntity entity = response.getEntity();
        data = EntityUtils.toString(entity);
        Log.e("STRING", data);

        try {
            JSONObject obj = null;

            json = new JSONArray(data);
            JSONArray actualJson = json.getJSONArray(0);

            for (int i = 0; i < actualJson.length(); i++) {
                obj = actualJson.getJSONObject(i);

                String name = obj.getString("name");
                Log.e("STRING", name);
                // mAdapter.addSectionHeaderItem(name);
                // setListAdapter(mAdapter);

                // JSONArray json1=new JSONArray("data");
                JSONArray json1 =obj.getJSONArray("data");

                for (int j = 0; j < json1.length(); j++) {

                JSONObject obj1= json1.getJSONObject(j);
                    String CompName= obj1.getString("vendor_name");

                    Log.e("STRING", CompName);
                    // CompID=obj1.getString("vendor_id");
                    // Log.e("vender",CompName);
                    // Log.e("id",CompID);
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    } catch (ClientProtocolException e) {
        Log.d("HTTPCLIENT", e.getLocalizedMessage());
    } catch (IOException e) {
        Log.d("HTTPCLIENT", e.getLocalizedMessage());
    }
}