在Android中解析JSON未检索所有JSON数组

在Android中解析JSON未检索所有JSON数组,android,android-json,Android,Android Json,在Android中解析JSON时,它只解析JSON数组的10项。例如 如果我将计数减少到5,它仍然返回10个项目,这并不重要。但是,当我在browner中浏览URL时。它返回所有20个项目。。。请帮帮我 public class MainListActivity extends ActionBarActivity { protected String TAG = MainListActivity.class.getSimpleName(); @Override

在Android中解析JSON时,它只解析JSON数组的10项。例如 如果我将计数减少到5,它仍然返回10个项目,这并不重要。但是,当我在browner中浏览URL时。它返回所有20个项目。。。请帮帮我

public class MainListActivity extends ActionBarActivity {

    protected  String TAG =  MainListActivity.class.getSimpleName(); 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_list);

        if(isNetworkAvailable()) {
            GetPostsTask getPostsTask = new GetPostsTask();
            getPostsTask.execute();

      }else
      {
          Toast.makeText(this,"No Network", Toast.LENGTH_SHORT).show();
      }

}

private boolean isNetworkAvailable(){
    ConnectivityManager manager =(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = manager.getActiveNetworkInfo();
    boolean isAvailable = false ;
    if (networkInfo != null && networkInfo.isConnected()){
        isAvailable = true ;
        }
    return isAvailable;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main_list, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

private class GetPostsTask extends AsyncTask<Object, Void, String>{


    protected  String doInBackground(Object...arg){
            JSONObject jsonResponse ;
        try{
            URL url = new URL(http://www.example.com/recent_summary/?count=20 );
            HttpURLConnection connection = (HttpURLConnection)url.openConnection();
            connection.connect();

            int responseCode = connection.getResponseCode();
            Log.i("Response Code", ""+responseCode);

            InputStream inputStream = connection.getInputStream();
            Reader reader = new InputStreamReader(inputStream);
            BufferedReader r = new BufferedReader(reader);
            StringBuffer buffer = new StringBuffer();
            String line ;
            while((line=r.readLine()) != null){
                buffer.append(line + "\n");

            }

           Log.i("ResponseData" , ""+buffer);

            jsonResponse = new JSONObject(buffer.toString());
            JSONArray jsonPosts = jsonResponse.getJSONArray("posts") ;

            for(int i =0 ; i<jsonPosts.length() ; i++){
                JSONObject jsonPost = jsonPosts.getJSONObject(i);
                String title = jsonPost.getString("title");
                Log.i("Post"+i, title);

            }



        }catch (MalformedURLException ex){
            Log.i(TAG , "Error Found ", ex);
        }catch(IOException ex){
            Log.i(TAG , "Error Found ", ex);
        }catch (Exception ex){
            Log.i(TAG , "Error Found ", ex);
        }

        return null ;
    }



  }
}

基本调试:吐出jsonPosts.length的值,吐出buffer的内容,这样你就可以看到你收到的原始json。length重新运行10个项目,尽管我使计数=5,请帮助我。你看了原始json文本了吗?也许服务器端脚本忽略了您的限制,不管怎样都会发送10个。。首先,无论我要求5或20个项目,我的logcat日志中都有10个项目。iPost+i,title。其次,如果服务器端出现问题,无论我要求多少,它也会在浏览器中返回10项。。你不觉得吗?