0

我正在使用这段代码从 Reddit 下载 json 数据。该代码在我创建的测试 java 项目中有效,但在我的 android 设备上使用时无效。在 android 设备上,它只会下载一小部分 json 数据。我不知道为什么。感谢您的任何帮助。

@Override
protected JSONObject doInBackground(URL... urls) {
    String c;
    StringBuilder str = new StringBuilder();
        try {
            BufferedReader in = new BufferedReader(new InputStreamReader((InputStream) urls[0].getContent()));
            while((c = in.readLine()) != null) {
                str.append(c);
            }
            in.close();
            json = new JSONObject(str.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    return json;
}
4

1 回答 1

0

试试这个方法

public resultModel getJSONfromReddit() {

        resultModel result = new resultModel();
        HttpResponse response;
        HttpClient myClient = new DefaultHttpClient();
        HttpPost myConnection = new HttpPost("http://www.reddit.com/.json");

        try {
            response = myClient.execute(myConnection);
            String JSONString = EntityUtils.toString(response.getEntity(),
                    "UTF-8");
            JSONObject json = null;
            json = new JSONObject(JSONString);
            Log.i(TAG, JSONString); //this is the whole response but it'll be cutted if you only print it in the eclipse logcat

            //PARSE YOUR JSON HERE

        }

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

        return result;
    }

也许您的 JSON 在 Eclipse 控制台中被剪切了,您可以尝试解析 JSON 并打印最后的数据来验证它,我希望我的答案足够清楚,但是如果您想问一些关于我的答案的问题,例如如何解析 JSON(我假设你知道如何做到这一点)随时在评论中提问:)

于 2013-04-17T05:03:34.067 回答