Fehler beim Analysieren Daten org.json.JSONException : Ende der Eingabe bei der Charakter 0 von

? ali @ | Original: StackOverFlow
---

Ich versuche, JSON-Daten, die kommen wird, zu analysieren http://dev.virtualearth.net/REST/v1/Traffic/Incidents/40.70000,-74.10000,40.8000,-74.0000?key=AoHoD_fdpQD73-OoTNnnsGzYu5ClXmVNAGr2t-M_wKbR8TWHqKrZR1X6GHI5pzWm .

Aber ich bin immer diese Fehler :

03-27 16 : 48: 21,019 : E / Buffer Error ( 23.717 ) : Fehler beim Konvertieren Ergebnis java.lang.NullPointerException

03-27 16 : 48: 21,059 : E / JSON- Parser ( 23.717 ) : Fehler beim Analysieren Daten org.json.JSONException : Ende der Eingabe bei der Charakter 0 von

WWenn ich meinen Code debuggen ; getJsonFromUrl() Methode null zurück jobject . Hier ist die JSONParser Klasse, die ich benutzt habe. Was verursacht den Fehler ?

public class JSONParser {

    static InputStream iStream = null;
    static JSONArray jarray = null;
    static JSONObject jObj= null;
    static String json = "";

    public JSONParser() {
    }



    public JSONObject getJSONFromUrl(String url) {

        // Making HTTP request
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);



        try {
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            InputStream is = httpEntity.getContent();
            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 + "
");
            }
            iStream.close();
            json = sb.toString();
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }

        // try parsing the string to a JSON object
        try {
            if (json != null) {
                jObj = new JSONObject(json);
            } else {
                jObj = null;
            }
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

        // return JSON String
        return jObj;

    }
}

Ich mache die Forderung nach dieser Methode von einer anderen Klasse mit diesen Zeilen . ( URL-Parameter ist oben definiert)

  JSONParser jParser = new JSONParser();
  final JSONObject jobject = jParser.getJSONFromUrl(url);
---

Top 5 Antwort

1vzamanillo @

Sie versuchen, die JSON- Inhalt zu erhalten mit Hilfe eines HTTP POST -Methode anstelle der gerechtes GET-Methode ( http://www.w3schools.com/tags/ref_httpmethods.asp ), ändern Sie den Quellcode zu vereinfachen und fixieren Sie Ihre HTTP-Anforderung

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet get = new HttpGet(url);

try {
    HttpResponse httpResponse = httpClient.execute(get);
    String json = EntityUtils.toString(httpResponse.getEntity());
    System.out.println(json);
    ....
    ....

} catch (Exception e) {
    ....
}