2016-02-12 103 views
0

我有這個錯誤org.json.JSONException: Index 5 out of range [0..5),我知道這是什麼意思JSONArray Exception : Index 50 out of range (0..50)如何獲得JSON數組的最大

我在這段代碼中的錯誤,我想要做的獲取最後一個ID在JSON對象怎麼辦?

 JSONObject maxj = peoples.getJSONObject(peoples.length()); 

更多explenation這是下面的代碼:

JSONObject jsonObj = new JSONObject(myJSON); 
      peoples = jsonObj.getJSONArray("result"); 
      System.out.println(peoples.length()); 

      JSONObject maxj = peoples.getJSONObject(peoples.length());//here is the error because 
      String j_id= maxj.getString("id");// and here 

      Listitem = new ArrayList<Listitem>(); 
      for(int i=0;i<peoples.length();i++){ 
       JSONObject c = peoples.getJSONObject(i); 
       // String id ="2"; 
       String id= c.getString("id"); 
       String url = c.getString("url"); 

在此代碼正在進入一個循環,並獲得ID(1,2,3,4)

   String id= c.getString("id"); 

什麼我只想要最後一個值the max這就是4,那該怎麼做?

回答

1

如文獻也

length()返回該數組中的值的數量。

JsonArray長度爲4,但指數會從0開始,所以將在4

是指數沒有價值,你需要從總長度減少1所以peoples.length()-1將是您的解決方案。

+0

謝謝,順便說一下,如果我打開兩個jasonobject,正如我在我的代碼中解釋的那樣錯誤?或者有更好的方法嗎?,我會發佈一個新的問題,如果需要 – Moudiz

+1

沒有什麼錯,但如果你想從它的最後一個對象比不需要for循環,並且如果你使用循環比你可以把如果內部條件也爲最後的記錄 –

2

length()是4因爲有4項。但索引從0開始,所以最後一項將在索引length() - 1處。因此,該代碼應該是:

peoples.getJSONObject(peoples.length() - 1);