0

我有这段代码并尝试运行,但它给了我“org.json.JSONException:Java.lang.String 类型的值 < 无法转换为 JSONObject”的异常。任何帮助都会得到帮助。

代码:

private class MyTask extends AsyncTask<String, Integer, String> {

            @Override
            protected void onPostExecute(String result) {

                CreateAndAppendListLayout();

                super.onPostExecute(result);
            }

            @Override
            protected void onPreExecute() {
                // TODO Auto-generated method stub




                super.onPreExecute();
            }

            @Override
            protected void onProgressUpdate(Integer... values) {
                // TODO Auto-generated method stub
                super.onProgressUpdate(values);

            }

            @Override
            protected String doInBackground(String... params) {


                String myRespone = null;
                String url = params[0];
                HttpClient client = new DefaultHttpClient();

                HttpGet Get = new HttpGet(url);

                try {
                    HttpResponse response = client.execute(Get);

                    HttpEntity entity = response.getEntity();
                    myRespone = EntityUtils.toString(entity);

                } catch (ClientProtocolException e) {

                    e.printStackTrace();

                    Log.e("My webservice Response", "ClientProtocolException");

                } catch (IOException e) {

                    Log.e("My webservice Response", "IOException");

                    e.printStackTrace();
                }
                JSONObject jsonObj;

                if (myRespone != null) {
                    try {



                        jsonObj = new JSONObject(myRespone);
                        JSONArray jsonArray = jsonObj.getJSONArray("Results");


                        for (int i = 0; i <= jsonArray.length() - 1; i++) {
                            myList.add(jsonArray.getJSONObject(i));

                        }



                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                } else {
                    // do nothing
                }
                return null;
            }

        }

我在服务器上的 JSON:

{
  "Results": [
    {
      "id": "10",
      "CID": "60607",
      "userName": "Jones",
      "userr": "hard work",
      "st": "4"
    },
    {
      "id": "8",
      "CID": "60807",
      "userName": "Aaali",
      "userr": "Good Service ",
      "st": "5"
    },
    {
      "id": "9",
      "CID": "65507",
      "userName": "Jan",
      "userr": "Happy, Cost effective ",
      "st": "5"
    }
  ]
}

日志猫:

07-30 11:15:24.570: W/System.err(8247): org.json.JSONException: Value < of type java.lang.String cannot be converted to JSONObject
07-30 11:15:24.570: W/System.err(8247):     at org.json.JSON.typeMismatch(JSON.java:111)
07-30 11:15:24.570: W/System.err(8247):     at org.json.JSONObject.<init>(JSONObject.java:158)
07-30 11:15:24.570: W/System.err(8247):     at org.json.JSONObject.<init>(JSONObject.java:171)
07-30 11:15:24.570: W/System.err(8247):     at com.example.myclass$MyTask.doInBackground(User_Reviews.java:484)
07-30 11:15:24.570: W/System.err(8247):     at com.example.myclass$MyTask.doInBackground(User_Reviews.java:1)
07-30 11:15:24.570: W/System.err(8247):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-30 11:15:24.570: W/System.err(8247):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-30 11:15:24.570: W/System.err(8247):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-30 11:15:24.575: W/System.err(8247):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-30 11:15:24.575: W/System.err(8247):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-30 11:15:24.575: W/System.err(8247):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-30 11:15:24.575: W/System.err(8247):     at java.lang.Thread.run(Thread.java:856)
4

2 回答 2

1

检查服务响应代码并仅在它为 200 时才解析 JSON,否则它可能是错误的。在您的情况下,它正在发送 HTML 代码,因此它正在崩溃

于 2014-09-23T02:37:54.723 回答
0

您尝试解析的 JSON 字符串可能无效,它有 some raw HTML(< like),这意味着它要么生成错误,要么 PHP 正在插入errors/warnings和销毁字符串

于 2013-07-30T06:45:16.573 回答