Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在LogCat中显示JSON Google搜索_Java_Android_Ajax_Json_Android Asynctask - Fatal编程技术网

Java 在LogCat中显示JSON Google搜索

Java 在LogCat中显示JSON Google搜索,java,android,ajax,json,android-asynctask,Java,Android,Ajax,Json,Android Asynctask,我正在尝试从URL获取搜索结果 并使用log.v将其显示到LogCat中 问题是,程序没有在LogCat中显示搜索结果,而是一直不停地运行,我在LogCat中看到的是一个无休止的列表 11-19 15:51:11.256:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 6651K/7688K,暂停8ms,总计8ms 11-19 15:51:11.264:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 66

我正在尝试从URL获取搜索结果

并使用log.v将其显示到LogCat中

问题是,程序没有在LogCat中显示搜索结果,而是一直不停地运行,我在LogCat中看到的是一个无休止的列表

11-19 15:51:11.256:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 6651K/7688K,暂停8ms,总计8ms

11-19 15:51:11.264:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 6651K/7688K,暂停8ms,总计8ms

11-19 15:51:11.272:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 6651K/7688K,暂停5ms,总计5ms

11-19 15:51:11.272:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 6651K/7688K,暂停4ms,总计5ms

11-19 15:51:11.324:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 6651K/7688K,暂停45毫秒,总计45毫秒

11-19 15:51:11.332:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 6651K/7688K,暂停8ms,总计8ms

11-19 15:51:11.400:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 6651K/7688K,暂停23ms,总计23ms

11-19 15:51:11.424:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 6651K/7688K,暂停2ms,总计2ms

11-19 15:51:11.464:D/dalvikvm1251:GC_FOR_ALLOC freed 480K,14%free 6651K/7688K,暂停26ms,总计26ms

在我在模拟器中关闭应用程序之前,这不会停止并继续

这是我的密码

公共类MainActivity扩展了活动{

}


尝试使用此代码进行网络呼叫,它至少可以从internet获取数据,然后将其发布到LogCat中

public class GetSearchData extends AsyncTask<Void,Void,Void> {

        @Override
        protected Void doInBackground(Void... params) {
            String url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=JSON";
            HttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);
            try{
                HttpResponse httpResponse = httpClient.execute(httpGet);
                String responseData = inputStreamToString(httpResponse.getEntity().getContent()).toString();
                Log.v("OUTPUT", responseData);

                JSONObject jsonObject= new JSONObject(responseData);
                JSONObject jsonObject2= jsonObject.getJSONObject("responseData");
                JSONArray jsonArray= jsonObject2.getJSONArray("results");

                for (int i = 0; i < jsonArray.length(); i++){
                   JSONObject results = jsonArray.getJSONObject(i);
                   String title = results.getString("title");
                   Log.v(TAG, "Result "+i+" : "+title);
                }

            } catch (IOException e){
                e.printStackTrace();
            } catch (JSONException e){
                e.printStackTrace();
            }
            return null;
        }

        public static StringBuilder inputStreamToString(InputStream is){
            String line;
            StringBuilder sb = new StringBuilder();
            BufferedReader rd = new BufferedReader(new InputStreamReader(is));
            try {
                while ((line = rd.readLine()) != null) {
                    sb.append(line);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return sb;
        }
    }

你能发布完整的代码吗,即你在哪里调用execute?@reactivemobile Ya对不起。我现在发布了完整的代码。这些日志消息来自垃圾收集器,它们与您的异步任务无关。请尝试按标记筛选日志消息,看看会出现什么情况。@RogueBaneling当我使用标记筛选日志消息时,什么也不显示。有时,我在让LogCat正常工作时会遇到问题。请尝试在您确信工作正常的地方使用Log.v,即onCreate,这样您就可以判断日志消息是否正确打印。非常感谢您的帮助。这个错误是因为一些非常愚蠢的事情:'我不知何故在while break条件中编写了responseCode==-1,而不是nextcharacter==-1。现在我的代码工作了。再次感谢您,很抱歉给您带来麻烦。如果您正在通过LogCat查看大量JSON,您可能会发现它们很有用。当您双击消息时,它会很好地打印JSON。[完全披露,我是LogRabbit的创造者]
public class GetSearchData extends AsyncTask<Void,Void,Void> {

        @Override
        protected Void doInBackground(Void... params) {
            String url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=JSON";
            HttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);
            try{
                HttpResponse httpResponse = httpClient.execute(httpGet);
                String responseData = inputStreamToString(httpResponse.getEntity().getContent()).toString();
                Log.v("OUTPUT", responseData);

                JSONObject jsonObject= new JSONObject(responseData);
                JSONObject jsonObject2= jsonObject.getJSONObject("responseData");
                JSONArray jsonArray= jsonObject2.getJSONArray("results");

                for (int i = 0; i < jsonArray.length(); i++){
                   JSONObject results = jsonArray.getJSONObject(i);
                   String title = results.getString("title");
                   Log.v(TAG, "Result "+i+" : "+title);
                }

            } catch (IOException e){
                e.printStackTrace();
            } catch (JSONException e){
                e.printStackTrace();
            }
            return null;
        }

        public static StringBuilder inputStreamToString(InputStream is){
            String line;
            StringBuilder sb = new StringBuilder();
            BufferedReader rd = new BufferedReader(new InputStreamReader(is));
            try {
                while ((line = rd.readLine()) != null) {
                    sb.append(line);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return sb;
        }
    }