Синтаксический анализ через объект JSON из модифицированного ответа

#java #android #json #retrofit

Вопрос:

Я довольно новичок в разработке Android, и я впервые создал приложение погоды, которое отображает прогноз погоды вместе с текущим прогнозом. Я хотел добавить кнопку, которая позволяет пользователю видеть ежедневный прогноз, но из вызова API похоже, что он возвращает объект JSON. Я застрял на этом в течение нескольких дней, и я понятия не имею, что делать. введите описание изображения здесь

         Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://api.weatherapi.com/v1/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        APICall apiCall = retrofit.create(APICall.class);
        Call<WeatherModel> call = apiCall.getHourAndAstroDetails(latlong, "7");
        System.out.println(call.request().url());
        call.enqueue(new Callback<WeatherModel>() {
            @Override
            public void onResponse(Call<WeatherModel> call, Response<WeatherModel> response) {
                if (days == 1) {
                    weatherList = response.body().getForecast().getForecastday().get(0).getHour();
                    System.out.println("this is the size of weatherList"   weatherList.size());
                    setAdapter(weatherList);
                } else if (days == 7) {
                    dailyForcast = response.body().getForecast().getForecastday().get(0).getDay();
                }


                String sunriseTime = response.body().getForecast().getForecastday().get(0).getAstro().getSunrise();
                String sunsetTime = response.body().getForecast().getForecastday().get(0).getAstro().getSunset();
                sunriseTextView.setText(sunriseTime);
                sunsetTextView.setText(sunsetTime);
            }

            @Override
            public void onFailure(Call<WeatherModel> call, Throwable t) {
            }
        });
    }
 

Комментарии:

1. Просто чтобы добавить, так как я думаю, что я оставил некоторую информацию. Мне нужно приступить к работе {}, но мне нужно получить список, чтобы я мог прикрепить его к RecyclerView. Я либо неправильно подхожу к этому, либо что-то, что так расстраивает.

Ответ №1:

Я думаю, вам следует создать класс модели для всех данных, которые вы получаете из API, чтобы вам было легче работать с данными.

В этой статье объясняется, что,

https://medium.com/swlh/basic-usage-of-retrofit-in-kotlin-for-fetching-json-8b9d37999058

Комментарии:

1. Решение было настолько простым. Я использовал jsonschema2pojo и по какой-то причине забыл, что могу создать пользовательский класс. Спасибо за напоминание.

2. Рад, что это сработало!