2017-08-15 1 views
-1

Ich möchte ein Array von PHP, dass eine der Dateien ein Array ist. Wie können Korbdaten mit jsonArray und jsonObject erhalten? (Im folgenden Code ist der Korb ein Array mit 5 Parametern).Wie bekomme ich JSON-Daten mit zwei Arrays in Android

Es ist mein Array:

[{"orderCode":11514,"orderDate":"2017/05/21","orderPrice":"1‌​9200","fullName":"Ja‌​ck","address":"addr 1","cellphone":"09151515730","basket":[{"b_qty":"4","pid":"8‌​","b_price":"9500","‌​b_discount":"10","ti‌​tle":"obj1"}] 

bearbeiten

String b_price =""; 
    String b_discount=""; 
    String b_qty =""; 
    String ti‌​tle= ""; 
    String pid=""; 

    try { 
     JSONArray jsonArray = new JSONArray(data); 

     for (int i = 0; i < jsonArray.length(); i++) { 

      JSONObject object = jsonArray.getJSONObject(i); 

      String orderCode = object.getString("orderCode"); 
      String orderDate = object.getString("orderDate"); 
      String orderPrice = object.getString("orderPrice"); 
      String fullName = object.getString("fullName"); 
      String address = object.getString("address"); 
      String cellphone = object.getString("cellphone"); 

      JSONArray orderBasket = object.getJSONArray("basket"); 

      for (int j = 0; j < orderBasket.length(); j++){ 
       JSONObject object1 = orderBasket.getJSONObject(j); 

       b_qty = object1.getString("b_qty"); 
       pid = object1.getString("pid"); 
       b_price = object1.getString("b_price"); 
       b_discount = object1.getString("b_discount"); 
       ti‌​tle = object1.getString("ti‌​tle"); 

      } 

      CustomOrderList customOrderList = new CustomOrderList(getApplicationContext()); 
      customOrderList.orderCode.setText(orderCode); 
      customOrderList.orderDate.setText(orderDate); 
      customOrderList.orderTotalPrice.setText(orderPrice); 
      customOrderList.orderFullName.setText(fullName); 
      customOrderList.orderAddress.setText(address); 
      customOrderList.orderCellphone.setText(cellphone); 

      customOrderList.basketPrice.setText(b_price); 
      customOrderList.basketDiscount.setText(b_discount); 
      customOrderList.basketTitle.setText(ti‌​tle); 

      layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
      linearOrders.addView(customOrderList); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
+0

hinzufügen Ihre Json aus und erklären mehr, was Sie –

+0

tun möchte, ich sehe dich "Korb" als String behandeln Hier. Ich verstehe nicht ganz, was Sie erreichen wollen, der Code hier ist nicht ganz relevant, veröffentlichen Sie die JSON-Struktur, mit der Sie es zu tun haben! und dann sagen Sie uns, was Sie extrahieren möchten – Mercury

+0

Ich möchte Korbdaten unter anderen Details in meiner App zeigen.] Ich erhalte andere Daten mit diesem Code richtig, aber ich kann Korbdaten mit diesem Code nicht erhalten. – Saeidhp

Antwort

-1
for (int i = 0; i < jsonArray.length(); i++) { 
     JSONObject object = jsonArray.getJSONObject(i); 

     String orderCode = object.getString("orderCode"); 
     String orderDate = object.getString("orderDate"); 
     String orderPrice = object.getString("orderPrice"); 
     String fullName = object.getString("fullName"); 
     String address = object.getString("address"); 
     String cellphone = object.getString("cellphone"); 

//Now orderBasket is jsonArray 
     JSONArray orderBasket = object.getJSONArray("basket"); 

// So fetch all objects from orderBasket array 
     for (int j = 0; j < orderBasket.length(); j++){ 
     JSONObject objectbsk = orderBasket.getJSONObject(j); 

     String b_qty = objectbsk.getString("b_qty"); 
     String pid = objectbsk.getString("pid"); 
     String b_price = objectbsk.getString("b_price"); 
     String b_discount = objectbsk.getString("b_discount"); 
     String ti‌​tle = objectbsk.getString("ti‌​tle"); 
// Create a orderBasket list for Basket with these keys also as you have created for CustomOrderList and use it 
} 

     CustomOrderList customOrderList = new CustomOrderList(getApplicationContext()); 
     customOrderList.orderCode.setText(orderCode); 
     customOrderList.orderDate.setText(orderDate); 
     customOrderList.orderTotalPrice.setText(orderPrice); 
     customOrderList.orderFullName.setText(fullName); 
     customOrderList.orderAddress.setText(address); 
     customOrderList.orderCellphone.setText(cellphone); 
    customOrderList.orderBasket.setText(orderBasket); 

// here you can't do set text since it's jsonarray. So use basketlist to show the data` 

layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
      linearOrders.addView(customOrderList); 
     } 
+0

Können Sie Ihren Code überprüfen? Dieser Code hat den Fehler customOrderList.orderBasket.setText (orderBasket); und ich habe i in diesem Teil für (int j = 0; i Saeidhp

+0

Yaah Ich habe das von i bis j bearbeitet. Und die erste Zeile, die du erzählt hast, ist, dass ich in meiner Antwort geschrieben habe, dass du keinen Text in ein jsonarray (Orderbasket) schreiben kannst. So erstellen Sie eine Liste von Orderbasket ... Bitte lesen Sie meine bearbeitete Antwort. Hoffe es hilft –

+0

Sorry für die Wiederholung der Frage. Ich musste meine Frage wie Ihren Code bearbeiten, aber es funktioniert nicht. Bitte lesen Sie meine bearbeitete Frage. – Saeidhp

Verwandte Themen