2017-03-03 3 views
1

Ich habe ein Restaurant List-Objekt und auch ein Cuisine List-Objekt in dieser Restaurant-Liste. Wie man eine Schleife dreht, um alle Küchendaten anzuzeigen (neuer Amerikaner, Japaner, Asien).Warum kann JSON Array nicht in Java extrahiert werden?

public class RestaurantList { 

    @SerializedName("restaurant_id") 
    @Expose 
    private String restaurantId; 
    @SerializedName("restaurant_name") 
    @Expose 
    private String restaurantName; 
    @SerializedName("cuisine") 
    @Expose 
    private List<Cuisine> cuisine = null; 

    public List<Cuisine> getCuisine() { 
     return cuisine; 
    } 

    public void setCuisine(List<Cuisine> cuisine) { 
     this.cuisine = cuisine; 
    } 
} 

Im Restaurant RVAdapter, onBindViewHolder();

List<RestaurantList> mRestaurantList; 

      List<Cuisine> cuisineList = restaurantList.getCuisine(); 
      String strCuisine = ""; 
      for (int i = 0; i < cuisineList.size(); i++) { 
       strCuisine.concat(cuisineList.get(i).getCuisineName()); 
       strCuisine.concat(","); 
       Log.i("Cuisine", cuisineList.get(i).getCuisineName()); 
       holder.tv_restaurant_cuisine.setText(" " + cuisineList.get(i).getCuisineName()); 
      } 

Json-Array;

[ 
    {...}, 
    { 
    "restaurant_id": "41", 
    "restaurant_name": "Shwe Lar Food Restaurant", 
    "cuisine": [ 
     { 
     "cuisine_name": "New American" 
     }, 
     { 
     "cuisine_name": "Japanese" 
     }, 
     { 
     "cuisine_name": "Asia" 
     } 
    ], 
    } 
] 
+0

Gibt es einen Fehler entdeckt? Wo ist JSONArray hier? – DEADMC

+0

nichts gefunden. – WPG

+0

Ihr JSON ist ungültig oder unvollständig. –

Antwort

2

Einsatz unter Methode um Ihre Daten zu analysieren: Ich entferne zuletzt, nach dem Array und {...}

private void parseJson(String jsonDataResponse){ 
     try 
     { 
      JSONArray jsonArray = new JSONArray(jsonDataResponse); 

      for(int i=0;i<jsonArray.length();i++) 
      { 
       JSONObject jsonObject1 = jsonArray.getJSONObject(i); 
       String restaurant_id = jsonObject1.optString("restaurant_id"); 
       String restaurant_name = jsonObject1.optString("restaurant_name"); 

       JSONArray jsonArray1 =jsonObject1.getJSONArray("cuisine"); 

       System.out.println("restaurant_id="+restaurant_id); 
       System.out.println("restaurant_name="+restaurant_name); 

       for(int j=0;j<jsonArray1.length();j++) 
       { 
        JSONObject jsonObject2 = jsonArray1.getJSONObject(j); 
        String cuisine_name = jsonObject2.optString("cuisine_name"); 
        System.out.println("cuisine_name="+cuisine_name); 
       } 
      } 
     } 
     catch (JSONException e) 
     { 
      e.printStackTrace(); 
     } 
    } 
+0

Und wie in TextView gesetzt? – WPG

+0

Haben Sie RestaurantList erstellt, während Sie Ihre Frage aus der json-Parsing-Methode eingeben, so wie ich es Ihnen gegeben habe. Wenn ja, dann können Sie Werte erhalten und auf eine Textansicht wie tv.setText (list.getRestaurantName()); –

+0

Was ist jsonDataResponse? Woher kommt es? Ich weiß nicht genau, bitte Sir .. – WPG

Verwandte Themen