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;

}

}

我从这里 http://ketozen.com/ketorecipes/将 JSON 发送到设备

这是 pastebin 输出 http://pastebin.com/s1M8HzNr

这是在我的日志中。 http://pastebin.com/QTUphjeR

有人可以说明问题出在哪里吗?

4

1 回答 1

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

可能你打算写

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

EntityUtils 也有静态方法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 回答