Mam jsona zapisanego w Stringu. Chcę go zmapować na obiekt za pomocą
WeatherForecast londonWeather = jsonb.fromJson(response, WeatherForecast.class); Dla typów prostych i Stringów dobrze mi to mapuje. Ale problem mam gdy json jako wartość ma tablicę. Więc spróbowałem w klasie napisać Weather[] nazwatablicyw_jsonie i dodałem nową klasę Weather w której dodałem interesujące mnie pola do zapisania z jsona. edit: próbowałem zmienić typ na List i też lipa
Jednak przy mapowaniu tablicy z jsona nie mapuje mi na tablicę w obiekcie (pole Weather[]). Wywala błąd
Exception in thread "main" javax.json.bind.JsonbException: Error deserialize JSON value into type: class java.lang.Integer. Jak zmapować jsona na obiekt, jeśli są zagnieżdżone tablice innych obiektów?
@Lewo: mi zawsze listy działały, może to przez te z-----e podkreślniki w nazwach zmiennych xd zamień je na normalne javowe nazwy i jakieś adnotacje z nazwą pola
@Lewo: Błąd dotyczy deserializacji klasy Integer, a w klasie Weather tylko pole temp jest tego typu. W dokumentacji pole temp jest opisane jako Integer, ale w przykładowej odpowiedzi z serwera temp jest liczbą zmiennoprzecinkową np: "the_temp":13.129999999999999. Spróbuj zmienić na doubla
@kuba34512: właśnie też to zauważyłem. Zmieniłem na Float i hasa dzięki. I na lista i na tablicy.
@SuppressWarnings: tzn te podkreślniki działały wcześniej na "nie tablice". I w ramach debugowania tego błędu co wkleiłem zrobiłem konstruktor dla Weather który wyswietla napis jak się utworzy. Ale zrobiłem konstruktor na domyślnym widoku i implementacja jsonb zaczęła krzyczeć, że nie można utworzyć. No to w ramach naprawiania nowych komunikatór błędów zacząłem
WeatherForecast londonWeather = jsonb.fromJson(response, WeatherForecast.class);
Dla typów prostych i Stringów dobrze mi to mapuje. Ale problem mam gdy json jako wartość ma tablicę.
Więc spróbowałem w klasie napisać Weather[] nazwatablicyw_jsonie i dodałem nową klasę Weather w której dodałem interesujące mnie pola do zapisania z jsona.
edit: próbowałem zmienić typ na List i też lipa
Wygląda to tak: klasa WeatherForecast , klasa Weather
Dane mam z tego API https://www.metaweather.com/api/#location (jak drukuje jsona jak string to jest poprawny)
Jednak przy mapowaniu tablicy z jsona nie mapuje mi na tablicę w obiekcie (pole Weather[]). Wywala błąd
Exception in thread "main" javax.json.bind.JsonbException: Error deserialize JSON value into type: class java.lang.Integer.
Jak zmapować jsona na obiekt, jeśli są zagnieżdżone tablice innych obiektów?
#naukaprogramowania #java
@SuppressWarnings: tzn te podkreślniki działały wcześniej na "nie tablice". I w ramach debugowania tego błędu co wkleiłem zrobiłem konstruktor dla Weather który wyswietla napis jak się utworzy. Ale zrobiłem konstruktor na domyślnym widoku i implementacja jsonb zaczęła krzyczeć, że nie można utworzyć.
No to w ramach naprawiania nowych komunikatór błędów zacząłem