2016-12-03 3 views
1

Ich muss einen String [] in ein JsonArray konvertieren und ich weiß nicht wie. Ich bin neu in Android-Entwicklung Ich möchte Anrufprotokolldetails in MySQL-Datenbank einfügen. also, von Android-Seite bekomme ich eine Zeichenfolge und aber ich weiß nicht, wie diese Zeichenfolge in Jsonarray konvertieren. plz helfen, dieses Problem Dank im Voraus zu klären,Wie konvertiert man einzelne Zeichenfolge zu JsonArray in Android?

Hier ist mein Java-Code .......

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

Antwort

0

die Sie interessieren,

// 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

Vielen Dank für Ihre Wiederholung ..... @ K Neeraj Lal –

+0

können Sie sagen, wie in meinem Java-Code zu implementieren .... –

+0

Nur Sie können das tun. Ich habe dir den Weg gezeigt. Verstehen Sie, wie Ihre API die Daten annimmt und Ihre Daten entsprechend erstellt. Viel Glück. :) –

0

Es ist easy.You einer der Konstrukteure von JSONArray Klasse verwenden kann.

JSONArray jArr = new JSONArray(strArr) 

wo strArr ist Ihr String-Array.

hier Mehr: https://developer.android.com/reference/org/json/JSONArray.html#JSONArray(java.lang.Object)

+1

Kannst du sagen, wie man String Array in meinem Java-Code macht? –

+0

Erstellen Sie ArrayList wie hier beschrieben: http://stackoverflow.com/questions/14098032/add-string-to-string-array. Dann verwenden Sie dies: http://StackOverflow.com/Questions/4841952/convert-arraylistmycustomclass-to-jsonarray –

+0

Hey @ Secret_Volcano, akzeptieren Sie die Antwort, wenn es Ihr Problem gelöst hat. :) –

Verwandte Themen