在android中为呼叫日志创建json数据

时间:2015-03-08 21:18:52

标签: android json

我想为我的通话记录详细信息创建一个json格式,如下所示,并将其发送到android中的服务器:

{ “Calllogs”:{

“logdata”:[

{ “ID”: “9791”, “数字”: “+ 919122185954”, “持续时间”: “0” 时, “类型”: “3”, “日期”: “1425887846182”, “名”: “WW”} , {

“ID”: “9790”, “数字”: “+ 91712222777”, “持续时间”: “32”, “类型”: “1”, “日期”: “1425880324221”, “名”: “Dpika”} : : : :

]}}

但是当我使用下面的代码以json格式获取所有调用日志详细信息并将其发送到服务器时,我得到一个非常不寻常的错误,例如当我发送30个联系人时它工作正常但是当我获取超过我得到一个错误????

代码:

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 个答案:

答案 0 :(得分:0)

由于您没有提供足够的信息,我必须假设您要使用以下代码创建JSON文件:

name number date duration types ids

我已使用此linkJSON创建ListView个文件。