0

I have this code and try to run but it is giving me exception of "org.json.JSONException: Value < of type java.lang.String cannot be converted to JSONObject". any help would be appricoted.

Code:

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

        }

My JSON on the server:

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

LOGCAT:

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)
2
  • 1
    Just check if the string has any special characters unseen etc ... Commented Jul 30, 2013 at 6:34
  • 1
    You JSON data is pretty straight forward.I am sure it contains special characters.Check your JSON data for validity.Use this link jsonlint.com Commented Jul 30, 2013 at 6:46

2 Answers 2

1

Check the Service Response Code and parse JSON only if it is 200 else it might be error. In your case it is sending HTML code, hence it is crashing

Sign up to request clarification or add additional context in comments.

Comments

0

The JSON string you're trying to parse may be invalid it's got some raw HTML(< like), which mean it's either badly generated, or PHP is inserting errors/warnings and destroying the string

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.