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
}
Wie sieht der JSON aus, bevor er versucht, in das POJO zu konvertieren? Es ist möglich, dass es nicht korrekt deserialisiert wird. –
http://puu.sh/uJ0XT/ac9de14ba.png –
Die Antwort, die Sie in der Frage gepostet haben, hat eine leere Reihe von Restaurants. Ist das der tatsächliche JSON oder Empfang? – Fred