2016-12-03 90 views
1

我需要將字符串[]轉換爲JsonArray,我不知道如何。我是Android開發新手,我想在MySQL數據庫中插入通話記錄詳細信息。所以,從android端我得到一個字符串,但我不知道如何將該字符串轉換成Jsonarray。 plz幫助解決這個問題感謝理清提前如何將單個字符串轉換爲android中的JsonArray?

這裏是我的Java代碼.......

public class MainActivity extends Activity { 
TextView textView; 

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

    textView = (TextView) findViewById(R.id.lv); 
    getCallDetails(); 
} 

private void getCallDetails() 
{ 
    StringBuffer sb = new StringBuffer(); 
    String strOrder = android.provider.CallLog.Calls.DATE + " DESC"; 

    Cursor managedCursor = managedQuery(CallLog.Calls.CONTENT_URI, null,null, null, strOrder); 
    int number1 = managedCursor.getColumnIndex(CallLog.Calls.NUMBER); 
    int type1 = managedCursor.getColumnIndex(CallLog.Calls.TYPE); 
    int duration1 = managedCursor.getColumnIndex(CallLog.Calls.DURATION); 

    sb.append("Call Log :"); 

    while (managedCursor.moveToNext()) 
    { 
     final String number = managedCursor.getString(number1); 
     final String type2 = managedCursor.getString(type1); 
     final String date = managedCursor.getString(managedCursor.getColumnIndexOrThrow("date")).toString(); 
     java.util.Date date1 = new java.util.Date(Long.valueOf(date)); 
     final String duration = managedCursor.getString(duration1); 
     String type = null; 

     Log.e("abc",date.toString()); 
     Log.e("abc",date1.toString()); 

     final String fDate = date1.toString(); 


     int callcode = Integer.parseInt(type2); 
     switch (callcode) 
     { 
      case CallLog.Calls.OUTGOING_TYPE: 
       type = "Outgoing"; 
       break; 
      case CallLog.Calls.INCOMING_TYPE: 
       type = "Incoming"; 
       break; 
      case CallLog.Calls.MISSED_TYPE: 
       type = "Missed"; 
       break; 
     } 
     sb.append("\nPhone Number:--- " + number + ""); 
     sb.append(" \nCall Type:--- " + type + " "); 
     sb.append("\nCall Date:--- " + date1 + ""); 
     sb.append ("\nCall duration in sec :--- " + duration); 
     sb.append("\n----------------------------------"); 

     class getCallDetails extends AsyncTask<Void,Void,String> 
     { 
      @Override 
      protected String doInBackground(Void... params) 
      { 
       HashMap<String,String> param = new HashMap<String, String>(); 
       param.put(Connect.KEY_NUMBER,number); 
       param.put(Connect.KEY_TYPE,type2); 
       param.put(Connect.KEY_DATE,fDate); 
       param.put(Connect.KEY_DURATION,duration); 

       RequestHandler rh = new RequestHandler(); 
       String res = rh.sendPostRequest(Connect.URL_ADD, param); 
       return res; 
      } 

     } 

     getCallDetails idata = new getCallDetails(); 
     idata.execute(); 
    } 
    managedCursor.close(); 
    textView.setText(sb); 

    } 
    } 
+0

https://developer.android.com/reference/org/json/JSONArray.html#put(java.lang.Object) – CommonsWare

回答

0

試試這個,

// Create JSONArray 
JSONArray jArray = new JSONArray(); 
while (managedCursor.moveToNext()) 
{ 
    final String number = managedCursor.getString(number1); 
    final String type2 = managedCursor.getString(type1); 
    final String date = managedCursor.getString(managedCursor.getColumnIndexOrThrow("date")).toString(); 
    Date date1 = new Date(Long.valueOf(date)); 
    final String fDate = date1.toString(); 
    final String duration = managedCursor.getString(duration1); 
    String type = null; 

    // Create JSONObject 
    JSONObject item = new JSONObject(); 

    // add the items to JSONObject 
    item.put("number", number); 
    item.put("type2", type2); 
    item.put("fDate", fDate); 
    item.put("duration", duration); 

    // add the JSONObject to JSONArray 
    jArray.put(item); 
} 
managedCursor.close(); 

System.out.println(jArray.toString()); 
+0

感謝您的重播..... @ K Neeraj拉爾 –

+0

你能說如何實現我的java代碼.... –

+0

只有你可以做到這一點。我已經向你展示了方式。瞭解您的API如何接受數據並據此創建數據。祝你好運。 :) –

0

這是easy.You可以使用JSONArray類的構造函數之一。

JSONArray jArr = new JSONArray(strArr) 

其中strArr是您的String數組。

這裏更多:https://developer.android.com/reference/org/json/JSONArray.html#JSONArray(java.lang.Object)

+1

你能說我的Java代碼中如何使字符串數組? –

+0

按照此處所述創建ArrayList:http://stackoverflow.com/questions/14098032/add-string-to-string-array。然後使用此:http://stackoverflow.com/questions/4841952/convert-arraylistmycustomclass-to-jsonarray –

+0

嘿@Secret_Volcano,接受答案,如果它已經解決了你的問題。 :) –

相關問題