2017-03-14 1 views
0

Ich möchte Daten aus dem JSON-Array übergeben, um es in RecyclerView anzuzeigen, aber in logcat gibt es "Items = 0". Irgendeine Lösungsmöglichkeit?Retrofit2 kann nicht auf Arrays in POJO zugreifen

D/RestauransActivity: response = { "Controller": "RestaurantController", "Info": "gefunden Restaurants!", "Restaurants" [], "status": true}

D/RestauransActivity: Items = 0

call.enqueue(new Callback<RestaurantsListResponse>() { 
     @Override 
     public void onResponse(Call<RestaurantsListResponse> call, Response<RestaurantsListResponse> response) 
     { 
      if(response.isSuccessful()) 
      { 
       data = new ArrayList<>(); 
       RestaurantsListResponse restaurants = response.body(); 
       Log.d("RestauransActivity", "response = " + new Gson().toJson(restaurants)); 
       data = restaurants.getRestaurants(); 
       Log.d("RestauransActivity", "Items = " + data.size()); 

       RecyclerView recyclerView = (RecyclerView)findViewById(R.id.my_recycler_view); 
       adapter = new MyRecyclerViewAdapter(data); 
       RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext()); 
       recyclerView.setLayoutManager(layoutManager); 
       recyclerView.setItemAnimator(new DefaultItemAnimator()); 
       recyclerView.setHasFixedSize(true); 
       recyclerView.setAdapter(adapter); 
      } 

public class RestaurantsListResponse 
    { 
    //... 

    @SerializedName("restaurants") 
    @Expose 
    private List<Restaurant> restaurants = null; 

    /... 

    public List<Restaurant> getRestaurants() 
    { 
     return restaurants; 
    } 

    public void setRestaurants(List<Restaurant> restaurants) 
    { 
     this.restaurants = restaurants; 
    } 
} 

public class Restaurant 
{ 
    //... fields, some setters and getters 
} 
+0

Wie sieht der JSON aus, bevor er versucht, in das POJO zu konvertieren? Es ist möglich, dass es nicht korrekt deserialisiert wird. –

+1

http://puu.sh/uJ0XT/ac9de14ba.png –

+0

Die Antwort, die Sie in der Frage gepostet haben, hat eine leere Reihe von Restaurants. Ist das der tatsächliche JSON oder Empfang? – Fred

Antwort

0

Alles funktioniert jetzt gut. Problem war ein schlechter Feldname in der RestApi-Klasse.

Verwandte Themen