1

I am using the following code to parse JSON in android application

    JSONArray category = null;
    JSONParser jParser = new JSONParser();

    JSONObject json = jParser
            .getJSONFromUrl("http://www.inchid.com/mobile/cate.php?cType=Product");

    try {

        category = json.getJSONArray("cate");


        for (int i = 0; i < category.length(); i++) {
            JSONObject c = category.getJSONObject(i);

            String name = c.getString("cate_name");

        }

    } catch (JSONException e) {
        e.printStackTrace();
    } catch (Exception e) {

        // TODO: handle exception
        System.out.println("ERRRORRRRRRRRRRRRRRRRRR");

    }

JSONParser class

  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, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();
    } 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());
    }

    // return JSON String
    return jObj;

}

This makes my application to force close and below picture is the screen shot of logcat. enter image description here

Logcat Error is:

Error parsing data org.json.JSONException: Value  of type java.lang.String cannot be converted to JSONObject

0

1 Answer 1

2

Some times what happen when you are fetching data from the server at that time some un-wanted characters was added when you compose the String. So try this it will help you.

Instead of return only json object change from

return jObj;

to

return new JSONObject(json.substring(json.indexOf("{"), json.lastIndexOf("}") + 1));

Also remove hidden characters on source String.

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.