2016-05-12 11 views
0

Ich habe versucht, die Daten noch nicht parsen zu können.Wie analysiert man diese JSON-Antwort in Android?

String jsonData = "[{\"id\":\"7\",\"customer_id\":\"1\",\"product_type_id\":\"1\",\"quantity\":\"1\",\"ordered_on\":\"2015-12-01\",\"product_consumption_type\":\"general\",\"reason\":\"\",\"productType\":{\"id\":\"1\",\"name\":\"Full Cream Milk\",\"description\":\"\",\"measurement\":\"\"}},{\"id\":\"3\",\"customer_id\":\"1\",\"product_type_id\":\"1\",\"quantity\":\"0\",\"ordered_on\":\"2015-12-02\",\"product_consumption_type\":\"general\",\"reason\":\"\",\"productType\":{\"id\":\"1\",\"name\":\"Full Cream Milk\",\"description\":\"\",\"measurement\":\"\"}}]"; 

Das ist, was ich bisher versucht habe:

try { 
    JsonArrayRequest req = new JsonArrayRequest(jsonData, new Response.Listener<JSONArray>() { 
     @Override 
     public void onResponse(JSONArray response) { 
      Log.d(TAG, response.toString()); 
      try { 
       //parsing the value of jsaon array 
       for (int i = 0; i < response.length(); i++) { 
        JSONObject details = (JSONObject) response.get(i); 
        String da = details.getString("ordered_on"); 
        int qty = Integer.parseInt(details.getString("quantity")); 
        JSONObject prod_det = details.getJSONObject("productType"); 
        String na = prod_det.getString("name"); 
        ProductType pt = new ProductType(na, qty); 
        Product prod = new Product(da, pt); 
        list.add(prod); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
       Toast.makeText(MonthlySummaryActivity.this, "ERROR" + e.getMessage(), Toast.LENGTH_SHORT).show(); 
       adapter.notifyDataSetChanged(); 
      } 
     } 
    }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      Toast.makeText(MonthlySummaryActivity.this, "error::" + error.getMessage(), Toast.LENGTH_LONG).show(); 

     } 
    }); 
} catch (Exception ex) { 
    ex.printStackTrace(); 
} 
loading.hide(); 
return list; 
+1

Was ist das Problem oder der Fehler? –

+2

Mögliches Duplikat von [Wie JSON in Java zu parsen] (http://StackOverflow.com/questions/2591098/How-to-Parse-JSON-in-Java) –

+0

@ Jonathan Darryl ich bin nicht in der Lage, die Daten zu reaktivieren –

Antwort

0

Hoffnung I u helfen könnte.

public List<Product> parse(String jsonData) throws JSONException { 
    List<Product> productList = new ArrayList(); 
    JSONArray orderArray = new JSONArray(jsonData); 
    for (int i = 0, count = orderArray.length(); i < count; i++) { 
     JSONObject productJO = orderArray.getJSONObject(i); 

     ProductType productType = new ProductType(); 
     // parse the product type 
     JSONObject productTypeJO = productJO.getJSONObject("productType"); 
     String typeId = productTypeJO.getString("id"); 
     String name = productTypeJO.getString("name"); 
     String description = productTypeJO.getString("description"); 
     String measurement = productTypeJO.getString("measurement"); 

     productType.setId(typeId); 
     productType.setName(name); 
     productType.setDescription(description); 
     productType.setMeasurement(measurement); 

     // parse the product 
     String id = productJO.getString("id"); 
     String customerId = productJO.getString("customer_id"); 
     String productTypeId = productJO.getString("product_type_id"); 
     String quantity = productJO.getString("quantity"); 
     String orderedOn = productJO.getString("ordered_on"); 
     String productConsumptionType = productJO.getString("product_consumption_type"); 
     String reason = productJO.getString("reason"); 

     Product product = new Product(); 
     product.setId(id); 
     product.setCustomerId(customerId); 
     product.setProductTypeId(productTypeId); 
     product.setQuantity(quantity); 
     product.setOrderedOn(orderedOn); 
     product.setProductConsumptionType(productConsumptionType); 
     product.setReason(reason); 
     product.setProductType(productType); 

     productList.add(product); 
    } 
    return productList; 
} 
2

können Sie JSON-Daten auf zwei Arten analysiert werden.

1) Erstellen Sie Ihre eigene Parser-Klasse.

2) Bibliothek zum Parsen der JSON-Zeichenfolge verwenden.

1) Wenn der JSON-String kurz ist, sollten Sie mit Ihrer eigenen Parser-Klasse wie unten beschrieben fortfahren.

String name; 

     try { 
      JSONArray array = new JSONArray(YOUR JSON STRING); 
      JSONObject obj; 
      for (int i = 0; i < array.length(); i++) { 
       obj = array.getJSONObject(i); 
       name = obj.getString(KEY_NAME); 
       ...... 
      } 

     }catch (Exception e){ 
      e.printStackTrace(); 
     } 

2) Verwendung Gson Bibliothek. für Gson können Sie this verwenden.