0

アプリで JSON を解析しようとしています。

私の JSONParser.java は次のとおりです。

public class JSONParser { 
    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";


    public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {

    // Making HTTP request
    try {
        // 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();

    } 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();
        Log.e("JSON", json);
    } 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;

}

}

ここからJSONをデバイスに送信しました http://ketozen.com/ketorecipes/

ここにペーストビンの出力があります http://pastebin.com/s1M8HzNr

これは私のログにあります。 http://pastebin.com/QTUphjeR

誰かが問題の場所を明らかにしてくれませんか?

4

1 に答える 1

3
sb.append(line + "n");

おそらくあなたは書くつもりだった

sb.append(line + "\n");

また、EntityUtils には static メソッドがありますtoString(entity))String この方法で直接取得できます

HttpEntity httpEntity = httpResponse.getEntity();
String jsonString = EntityUtils.toString(httpEntity);

その後

try {
        jObj = new JSONObject(jsonString);
 } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
 }
于 2013-05-17T12:49:55.903 に答える