2015-11-04 40 views
1

「這是數據轉換成JSON格式的代碼」我從移動獲取聯繫人的細節,當我嘗試轉換成JSON格式應用程序崩潰

private void jsonformatdata() { 
     // TODO Auto-generated method stub 
     JSONArray arr = new JSONArray(); 
     try { 
      for(int i=0;i<=contactModel.size();i++) 
      { 
       JSONObject jsonAdd = new JSONObject(); 
       jsonAdd.put("strModifiedDate", localTime); 
       jsonAdd.put("contactName", contactModel.get(i).getPhonebookName()); 
       jsonAdd.put("uniqueContactID", contactModel.get(i).getContactId()); 
       JSONArray phone = new JSONArray(); 
       if(contactModel.get(i).getHomeNummber() == null) 
       {} 
       else 
       {JSONObject num1 = new JSONObject(); 
       num1.put("",contactModel.get(i).getHomeNummber()); 
       phone.put(num1);} 
       if(contactModel.get(i).getMobileNummber()==null) 
       {} 
       else 
       {JSONObject num2 = new JSONObject(); 
       num2.put("",contactModel.get(i).getMobileNummber()); 
       phone.put(num2);} 
       if(contactModel.get(i).getWorkNummber()==null){} 
       else{JSONObject num3 = new JSONObject(); 
       num3.put("",contactModel.get(i).getWorkNummber()); 
       phone.put(num3);} 
       if(contactModel.get(i).getOtherNummber()==null){} 
       else{JSONObject num4 = new JSONObject(); 
       num4.put("",contactModel.get(i).getOtherNummber()); 
       phone.put(num4);}    
       jsonAdd.put("phone",phone); 
       arr.put(i,jsonAdd); 
      } 
      String datatosend = arr.toString(); 
      Log.e(datatosend, ""+datatosend); 

     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

錯誤信息,這是我在logcat的

得到
java.lang.RuntimeException: Unable to start activity 

ComponentInfo {com.example.vchat/com.example.vchat.Friends_listing}: java.lang.IndexOutOfBoundsException:無效索引0,大小爲0

+0

請任何人快速回復,以便我可以提前修復它... thanx –

+0

ArrayIndexOutofBound表示您正在從列表位置獲取不存在的數據。而不是<=使用

回答

2

你需要轉換:

for(int i=0;i<=contactModel.size();i++)

到:

for(int i=0;i<contactModel.size();i++)

數組中的元素從零開始直到大小。可能你的contactModel是空的。

而且下一次請包括完整的堆棧跟蹤,如果你有一個,在這個問題。

+0

thanku先生你的快速反應和給你的寶貴時間................後你建議它開始工作,但在JSON數據我沒有獲得任何價值只有我得到了反應[]。 –

+0

@NikhilSingh你沒有得到任何json值,因爲你的contactModel是空的。你應該先解決這個問題。 – dan

2

您需要更改

for(int i=0;i<=contactModel.size();i++) 

for(int i=0;i<contactModel.size();i++) 
+0

這是我的聯繫人模型類... –

相關問題