Java REST API для цикла - PullRequest
       6

Java REST API для цикла

0 голосов
/ 24 сентября 2019

Я занимаюсь разработкой приложения с использованием Java REST API и Spring Boot.У меня проблема.

JSONArray jsonArray=jsonObject.getJSONArray("DailyForecasts");
                for (int i = 0; i < 5; i++) {         
                    JSONObject jsonobject2=jsonArray.getJSONObject(i);
                    forecast.setTarih(jsonobject2.getString("Date"));
                    forecast.setGunDogumu(jsonobject2.getJSONObject("Sun").getString("Rise"));
                    forecast.setGunBatimi(jsonobject2.getJSONObject("Sun").getString("Set"));
                    forecast.setMinimumSicaklik(jsonobject2.getJSONObject("Temperature").getJSONObject("Minimum").getInt("Value"));
                    forecast.setMaksimumSicaklik(jsonobject2.getJSONObject("Temperature").getJSONObject("Maximum").getInt("Value"));


                    forecastList.add(forecast);
                }

@CrossOrigin(origins = "http://localhost:3000")
    @GetMapping(path="/web/api/accu/tahmin/{city}")
    public List<ForecastData> CityWeatherForecast(@PathVariable("city") String city) {
        findLocation(HexString(city), APIKEY);
        weatherForecast(location.getKey(),APIKEY);

        return forecastList;
    }

Я добавил элементы в список с помощью цикла for.Но когда я печатаю, он показывает только последний элемент.Как я могу это исправить?

1 Ответ

0 голосов
/ 24 сентября 2019

Вы обновляете тот же объект - прогноз.Вы должны создавать новый объект, который будет передан каждый раз в цикле.

for (int i = 0; i < 5; i++) {         
    Forecast forecast = new Forecast();  // Line that you missed
    JSONObject jsonobject2=jsonArray.getJSONObject(i); 
    // your code goes here
    forecastList.add(forecast);
}

Это должно решить проблему.Причиной этой ошибки является то, что один и тот же объект Forecast переназначается для каждого цикла, а не для нового объекта.Создание объекта, как показано в коде выше, должно исправить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...