2015-03-08 16 views
0

我想創建一個JSON格式爲我的通話記錄細節,如下面的,它在android系統發送到服務器:創建的Android JSON數據通話記錄

{「Calllogs」:{

「 logdata 「:[

{ 」ID「:」 9791" , 「號」: 「+ 919122185954」, 「持續時間」: 「0」, 「類型」: 「3」, 「日期」 :「1425887846182」, 「name」:「ww」} , {

「ID」: 「9790」, 「號」: 「+ 91712222777」, 「持續時間」: 「32」, 「類型」: 「1」, 「日期」: 「1425880324221」, 「名」:「Dpika」} : : : :

]}}

但是當我使用下面的代碼來獲取JSON格式的所有通話記錄的詳細信息,並將其發送到服務器,我得到一個非常不尋常的錯誤,就像我發送30個聯繫人時它工作正常,但是當我獲取比我更多的g設置一個錯誤?

CODE:

public void GetCallLogs() 
    { 
     JSONObject main= new JSONObject(); 
     JSONObject calllogs = new JSONObject(); 
     JSONArray logs = new JSONArray(); 
     Cursor cur = getContentResolver().query(Uri.parse("content://call_log/calls"),null, null, null, "_ID DESC"); 

     cur.moveToFirst(); 

     int nameColumn = cur.getColumnIndex(CallLog.Calls.CACHED_NAME); 
     int numberColumn = cur.getColumnIndex(CallLog.Calls.NUMBER); 
     int dateColumn = cur.getColumnIndex(CallLog.Calls.DATE); 
     int duretion = cur.getColumnIndex(CallLog.Calls.DURATION); 
     int type = cur.getColumnIndex(CallLog.Calls.TYPE); 
     int id = cur.getColumnIndex(CallLog.Calls._ID); 

     int i=0; 

     JSONObject studenti = new JSONObject(); 
     while (!cur.isAfterLast() && i < 50) { 

      String name = cur.getString(nameColumn); 
      String number = cur.getString(numberColumn); 
      String date = cur.getString(dateColumn); 
      String duration = cur.getString(duretion); 
      String types = cur.getString(type); 
      String ids = cur.getString(id); 



      try { 
       studenti.put("id", ids); 
       studenti.put("name",name); 
       studenti.put("date", date); 
       studenti.put("duration", duration); 
       studenti.put("types", types); 
       studenti.put("number", number); 

       Log.d("HERE IN FETCHCALL", "name"+name); 


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




      logs.put(studenti); 


      studenti = new JSONObject(); 



      cur.moveToNext(); 
     i++; 
     } 

     try { 
      calllogs.put("logdata", logs); 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


     try { 
     main.put("Calllogs", calllogs); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 


    } 
+1

首先更新您的文章並描述問題。現在您只添加了代碼 – 2015-03-08 21:34:28

回答

0

既然你不給足夠的信息,我必須假設你是想創建一個JSON文件與下面的代碼:

name number date duration types ids

我已使用此link爲我的ListView創建JSON文件。