When I get my response.body() it will not allow me to set it to a List.
SAMPLE GSON:
{
"cod": "200",
"message": 0,
"cnt": 5,
"list": [
{
"dt": 1590861600,
"main": {
"temp": 17.74,
"feels_like": 14.52,
"temp_min": 15.99,
"temp_max": 17.74,
"pressure": 1022,
"sea_level": 1022,
"grnd_level": 1021,
"humidity": 51,
"temp_kf": 1.75
},
"weather": [
{
"id": 803,
"main": "Clouds",
"description": "broken clouds",
"icon": "04d"
}
],
"clouds": {
"all": 82
},
"wind": {
"speed": 3.75,
"deg": 124
},
"sys": {
"pod": "d"
},
"dt_txt": "2020-05-30 18:00:00"
},
Class
public class WeatherResponse {
@SerializedName("cod")
@Expose
private String cod;
@SerializedName("message")
@Expose
private Long message;
@SerializedName("cnt")
@Expose
private Long cnt;
@SerializedName("list")
@Expose
private List<WeatherList> results;
@SerializedName("city")
@Expose
private City city;
CODE
private List<WeatherResponse> mWeatherResponseList;
public void onResponse(Call<WeatherResponse> call, Response<WeatherResponse> response) {
Log.d(TAG, "onResponse: server response " + response.toString());
// response code 200 means a successful request
// if successful store the response body in the log
if (response.code() == 200) {
mWeatherResponseList = response.body(); --Throws an error
The error states incompatible types: Required Java.util.list - Found WeatherResponse
I did this:
list = new ArrayList(Collections.singleton(((response.body())))); Which appears to have worked. But the problem now is the response has nested Json. Its one object with a list of 5 items. When I try to display the 5 items in the recyclerview it only displays the one object but not the nested list of 5 items which I actually want