JSON Parse error in android: error parsing data org.json.JSONException: end of input character 0

My url returns

       {"success":0,"message":"No books found"}

      

I need to get the success value!

I tried with

      List<NameValuePair> param = new ArrayList<NameValuePair>(); 
      param.add(new BasicNameValuePair("format", "json"));
      JSONObject jsons = jParser.makeHttpRequest(updated_time, "GET",param); 
       try { 
         success = jsons.getString(TAG_SUCCESS); 
         System.err.println("success length is::"+success); 
       } catch (JSONException e2) { 
       e2.printStackTrace(); 
       }

      

My parser

public class JSONParser {

static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

// constructor
public JSONParser() {

}

// function get json from url
// by making HTTP POST or GET method
public JSONObject makeHttpRequest(String url, String method,
        List<NameValuePair> params) {

    // Making HTTP request
    try {

        // check for request method
        if(method == "POST"){
            // request method is POST
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(new UrlEncodedFormEntity(params));

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

        }else if(method == "GET"){
            // request method is GET
            DefaultHttpClient httpClient = new DefaultHttpClient();
            String paramString = URLEncodedUtils.format(params, "utf-8");
            url += "?" + paramString;
            HttpGet httpGet = new HttpGet(url);

            HttpResponse httpResponse = httpClient.execute(httpGet);
            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;

}

      

}

I am getting an error like

 Error parsing data org.json.JSONException: End of input at character 0 of

      

How can I solve this problem?

+3


source to share


3 answers


try to put url result in string and then try this



JSONObject jsonresult = new JSONObject(result);
String success = jsonresult.getString("success");
String message = jsonresult.getString("message");

      

+1


source


public class Servicehandler {

public String servicehandler(String Url) {
    InputStream is = null;
    String result = null;

    try {


        // StringEntity entity1 = new StringEntity(Url, "UTF-8");
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httpget = new HttpPost(Url);
        System.out.println(Url);
        HttpResponse response = httpclient.execute(httpget);

        HttpEntity entity = response.getEntity();

        is = entity.getContent();
        System.out.println(is.toString());

    } catch (Exception e) {
        Log.e("log_tag", "Error in http connection" + e.toString());
    }

    try {

        //Read the response and convert into string

        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);

        StringBuilder sb = new StringBuilder();
        sb.append(reader.readLine() + "\n");

        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        result = sb.toString();
        Log.e("log_tag", result);
    } catch (Exception e) {
        Log.e("log_tag", "Error in http connection" + e.toString());
    }

    return result;

}
public String servicehandler1(String url, JSONObject contactsync) {
    InputStream is = null;
    String result = null;

    try {

        //image upload

        StringEntity entity1 = new StringEntity(contactsync.toString(),
                "UTF-8");
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httpget = new HttpPost(url);
        System.out.println(contactsync);
        httpget.setEntity(entity1);
        httpget.setHeader("Accept", "application/json");
        httpget.setHeader("Content-type", "application/json");
        HttpResponse response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
        System.out.println(is.toString());

    } catch (Exception e) {
        Log.e("log_tag", "Error in http connection" + e.toString());
    }

    try {
        BufferedReader reader = new BufferedReader(
                new InputStreamReader(is, "iso-8859-1"), 8);

        StringBuilder sb = new StringBuilder();
        sb.append(reader.readLine() + "\n");

        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        result = sb.toString();
        Log.e("log_tag", result);
    } catch (Exception e) {
        Log.e("log_tag", "Error in http connection" + e.toString());
    }
    return result;

}



}

      



+1


source


try the following code

JSONObject j = new JSONObject(result);  
String success_value = j.getString("success");
String message_value = j.getString("message");

      

and use the POST method.

0


source







All Articles