Привет помогите распарсить JSON
{"data":{"request":[{"type":"LatLon","query":"Lat 56.85 and Lon 53.21"}],"current_condition":[{"observation_time":"05:17 PM","temp_C":"-12","temp_F":"10","weatherCode":"116","weatherDesc":[{"value":"Partly cloudy"}],"windspeedMiles":"10","windspeedKmph":"16","winddirDegree":"336","winddir16Point":"NNW","precipMM":"0.0","humidity":"80","visibility":"20","pressure":"1009","cloudcover":"6","FeelsLikeC":"-20","FeelsLikeF":"-3"}],"weather":[{"date":"2018-11-23","astronomy":[{"sunrise":"08:24 AM","sunset":"04:02 PM","moonrise":"04:41 PM","moonset":"07:55 AM","moon_phase":"Full Moon","moon_illumination":"98"}],"maxtempC":"-9","maxtempF":"16","mintempC":"-13","mintempF":"9","totalSnow_cm":"0.1","sunHour":"2.9","uvIndex":"0","hourly":[{"time":"0","tempC":"-9","tempF":"16","windspeedMiles":"9","windspeedKmph":"14","winddirDegree":"303","winddir16Point":"WNW","weatherCode":"116",weatherDesc":[{"value":"Partly cloudy"}],"precipMM":"0.0","humidity":"90","visibility":"10","pressure":"991","cloudcover":"48","HeatIndexC":"-9","HeatIndexF":"16","DewPointC":"-10","DewPointF":"13","WindChillC":"-15","WindChillF":"5","WindGustMiles":"13","WindGustKmph":"22","FeelsLikeC":"-15","FeelsLikeF":"5","chanceofrain":"0","chanceofremdry":"83","chanceofwindy":"0","chanceofovercast":"37","chanceofsunshine":"81","chanceoffrost":"99","chanceofhightemp":"0","chanceoffog":"0","chanceofsnow":"0","chanceofthunder":"0"},{"time":"300","tempC":"-10","tempF":"13","windspeedMiles":"9","windspeedKmph":"15","winddirDegree":"317","winddir16Point":"NW","weatherCode":"122","weatherDesc":[{"value":"Overcast"}],"precipMM":"0.0","humidity":"90","visibility":"10","pressure":"993","cloudcover":"95","HeatIndexC":"-10","HeatIndexF":"13","DewPointC":"-12","DewPointF":"11","WindChillC":"-17","WindChillF":"1","WindGustMiles":"15","WindGustKmph":"23","FeelsLikeC":"-17","FeelsLikeF":"1","chanceofrain":"0","chanceofremdry":"91","chanceofwindy":"0","chanceofovercast":"82","chanceofsunshine":"19","chanceoffrost":"50","chanceofhightemp":"0","chanceoffog":"0","chanceofsnow":"0","chanceofthunder":"0"},{"time":"600","tempC":"-10","tempF":"15","windspeedMiles":"11","windspeedKmph":"18","winddirDegree":"343","winddir16Point":"NNW","weatherCode":"122","weatherDesc":[{"value":"Overcast"}],"precipMM":"0.0","humidity":"84","visibility":"17","pressure":"997","cloudcover":"88","HeatIndexC":"-10","HeatIndexF":"15","DewPointC":"-12","DewPointF":"11","WindChillC":"-17","WindChillF":"2","WindGustMiles":"17","WindGustKmph":"28","FeelsLikeC":"-17","FeelsLikeF":"2","chanceofrain":"0","chanceofremdry":"90","chanceofwindy":"0","chanceofovercast":"94","chanceofsunshine":"14","chanceoffrost":"50","chanceofhightemp":"0","chanceoffog":"0","chanceofsnow":"0","chanceofthunder":"0"},{"time":"900","tempC":"-9","tempF":"15","windspeedMiles":"13","windspeedKmph":"21","winddirDegree":"348","winddir16Point":"NNW","weatherCode":"119","weatherDesc":[{"value":"Cloudy"}],"precipMM":"0.0","humidity":"66","visibility":"16","pressure":"1001","cloudcover":"82","HeatIndexC":"-9","HeatIndexF":"15","DewPointC":"-15","DewPointF":"6","WindChillC":"-17","WindChillF":"1","WindGustMiles":"20","WindGustKmph":"32","FeelsLikeC":"-17","FeelsLikeF":"1","chanceofrain":"0","chanceofremdry":"93","chanceofwindy":"0","chanceofovercast":"85","chanceofsunshine":"5","chanceoffrost":"50","chanceofhightemp":"0","chanceoffog":"0","chanceofsnow":"0","chanceofthunder":"0"},{"time":"1200","tempC":"-9","tempF":"16","windspeedMiles":"17","windspeedKmph":"28","winddirDegree":"9","winddir16Point":"N","weatherCode":"230","weatherDesc":[{"value":"Blizzard"}],"precipMM":"0.1","humidity":"63","visibility":"17","pressure":"1002","cloudcover":"86","HeatIndexC":"-9","HeatIndexF":"16","DewPointC":"-15","DewPointF":"6","WindChillC":"-18","WindChillF":"0","WindGustMiles":"23","WindGustKmph":"37","FeelsLikeC":"-18","FeelsLikeF":"0","chanceofrain":"99","chanceofremdry":"0","chanceofwindy":"0","chanceofovercast":"88","chanceofsunshine":"0","chanceoffrost":"99","chanceofhightemp":"0","chanceoffog":"0","chanceofsnow":"99","chanceofthunder":"0"},{"time":"1500","tempC":"-11","tempF":"13","windspeedMiles":"11","windspeedKmph":"18","winddirDegree":"354","winddir16Point":"N","weatherCode":"329","weatherDesc":[{"value":"Patchy moderate snow"}],"precipMM":"0.1","humidity":"70","visibility":"17","pressure":"1006","cloudcover":"77","HeatIndexC":"-11","HeatIndexF":"13","DewPointC":"-15","DewPointF":"5","WindChillC":"-18","WindChillF":"-1","WindGustMiles":"18","WindGustKmph":"29","FeelsLikeC":"-18","FeelsLikeF":"-1","chanceofrain":"98","chanceofremdry":"0","chanceofwindy":"0","chanceofovercast":"85","chanceofsunshine":"0","chanceoffrost":"99","chanceofhightemp":"0","chanceoffog":"0","chanceofsnow":"98","chanceofthunder":"0"},{"time":"1800","tempC":"-12","tempF":"10","windspeedMiles":"10","windspeedKmph":"16","winddirDegree":"336","winddir16Point":"NNW","weatherCode":"116",weatherDesc":[{"value":"Partly cloudy"}],"precipMM":"0.0","humidity":"80","visibility":"20","pressure":"1009","cloudcover":"6","HeatIndexC":"-12","HeatIndexF":"10","DewPointC":"-15","DewPointF":"5","WindChillC":"-20","WindChillF":"-3","WindGustMiles":"16","WindGustKmph":"26","FeelsLikeC":"-20","FeelsLikeF":"-3","chanceofrain":"0","chanceofremdry":"85","chanceofwindy":"0","chanceofovercast":"45","chanceofsunshine":"87","chanceoffrost":"98","chanceofhightemp":"0","chanceoffog":"0","chanceofsnow":"0","chanceofthunder":"0"},{"time":"2100","tempC":"-13","tempF":"9","windspeedMiles":"6","windspeedKmph":"10","winddirDegree":"315","winddir16Point":"NW","weatherCode":"116","weatherDesc":[{"value":"Partly cloudy"}],"precipMM":"0.0","humidity":"89","visibility":"20","pressure":"1011","cloudcover":"8","HeatIndexC":"-13","HeatIndexF":"9","DewPointC":"-15","DewPointF":"6","WindChillC":"-19","WindChillF":"-2","WindGustMiles":"11","WindGustKmph":"17","FeelsLikeC":"-19","FeelsLikeF":"-2","chanceofrain":"0","chanceofremdry":"91","chanceofwindy":"0","chanceofovercast":"44","chanceofsunshine":"88","chanceoffrost":"97","chanceofhightemp":"0","chanceoffog":"0","chanceofsnow":"0","chanceofthunder":"0"}]}],"ClimateAverages":[{"month":[{"index":"1","name":"January","avgMinTemp":"-15.5","avgMinTemp_F":"4.1","absMaxTemp":"-8.2","absMaxTemp_F":"17.2","avgDailyRainfall":"1.65"},{"index":"2","name":"February","avgMinTemp":"-14.5","avgMinTemp_F":"5.9","absMaxTemp":"-2.1","absMaxTemp_F":"28.2","avgDailyRainfall":"1.32"},{"index":"3","name":"March","avgMinTemp":"-8.2","avgMinTemp_F":"17.2","absMaxTemp":"0.2","absMaxTemp_F":"32.4","avgDailyRainfall":"2.25"},{"index":"4","name":"April","avgMinTemp":"0.6","avgMinTemp_F":"33.1","absMaxTemp":"11.9","absMaxTemp_F":"53.4","avgDailyRainfall":"2.67"},{"index":"5","name":"May","avgMinTemp":"10.1","avgMinTemp_F":"50.2","absMaxTemp":"22.7","absMaxTemp_F":"72.9","avgDailyRainfall":"1.87"},{"index":"6","name":"June","avgMinTemp":"14.7","avgMinTemp_F":"58.5","absMaxTemp":"26.9","absMaxTemp_F":"80.4","avgDailyRainfall":"2.33"},{"index":"7","name":"July","avgMinTemp":"16.8","avgMinTemp_F":"62.2","absMaxTemp":"30.8","absMaxTemp_F":"87.4","avgDailyRainfall":"2.24"},{"index":"8","name":"August","avgMinTemp":"14.5","avgMinTemp_F":"58.1","absMaxTemp":"28.8","absMaxTemp_F":"83.8","avgDailyRainfall":"2.10"},{"index":"9","name":"September","avgMinTemp":"8.3","avgMinTemp_F":"46.9","absMaxTemp":"18.5","absMaxTemp_F":"65.3","avgDailyRainfall":"2.29"},{"index":"10","name":"October","avgMinTemp":"0.8","avgMinTemp_F":"33.4","absMaxTemp":"7.7","absMaxTemp_F":"45.9","avgDailyRainfall":"2.29"},{"index":"11","name":"November","avgMinTemp":"-5.0","avgMinTemp_F":"23.0","absMaxTemp":"3","absMaxTemp_F":"37.4","avgDailyRainfall":"2.03"},{"index":"12","name":"December","avgMinTemp":"-12.3","avgMinTemp_F":"9.9","absMaxTemp":"-3.5","absMaxTemp_F":"25.7","avgDailyRainfall":"2.32"}]}]}}
в объект класса Forecast. Вот сам класс
import com.google.gson.annotations.SerializedName;
import com.google.gson.internal.LinkedTreeMap;
import com.google.gson.annotations.Expose;
public class Forecast {
@SerializedName("data")
@Expose
private LinkedTreeMap<String, ArrayList<LinkedTreeMap<String, String>>> data;
public LinkedTreeMap<String, ArrayList<LinkedTreeMap<String, String>>> getData() {
return data;
}
}
в итоге получаю исключение com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 1 column 192 path $.data.[0].
не понимаю почему он ждёт String, когда когда приходит ArrayList. В интерфейсе указал, что получаю Object.
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface ForecastApi {
@GET("weather.ashx")
Call<Forecast> getForecast(@Query("q") String coord, @Query("key") String key, @Query("format") String format, @Query("num_of_days") String days);
}
Если я Map меняю на Object, то ошибки нет, но тогда я не знаю как извлечь поля, например "temp_C"
Я начинающий, на S/O впервые, так что не бейте, если туплю)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо создать приложение на android с секундомером, выводящем время в формате MM:SSMS
Помогите с этим! Нужно, чтобы в самой активности я указывал ссылку на картинку, если знаете как сделать это через glide, picasso, любую библиотеку
Доброй ночиПодскажите пожалуйста, как мне быть
Для определенных целей мне нужно создать метод, который будет вызывать диалоговое окно с пользователем ( TextInputDialog ), после ввода пользователем...