Задать вопрос
lalalayousuck
@lalalayousuck
Web-разработчик / Препод в Digital Banana

Как правильно использовать GSON для парсинга погоды?

Добрый день!

Подскажите, как правильно пользоваться GSON, или где можно найти информацию о его применении?

Хочу взять данные WeatherOpenApi и создать новый объект Weather, заполнив его переменные name, main, maxtemp полученными данными.

За счёт каких действий данные, которые я получаю в виде json должны распределиться по переменным класса? Как пример смотрел developer.alexanderklimov.ru/android/library/gson.php, но там количество переменных объекта равно количеству аргументов в json - а в моем случае получается много лишней информации - как отсеять лишнюю?

public class MainActivity extends AppCompatActivity {

    public class Weather {
        String main;
        String name;
        double maxtemp;

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String jsonlink = "{\"coord\":{\"lon\":-0.13,\"lat\":51.51},\"weather\":[{\"id\":310,\"main\":\"Drizzle\",\"description\":\"light intensity drizzle rain\",\"icon\":\"09d\"},{\"id\":500,\"main\":\"Rain\",\"description\":\"light rain\",\"icon\":\"10d\"}],\"base\":\"cmc stations\",\"main\":{\"temp\":280.87,\"pressure\":1007,\"humidity\":87,\"temp_min\":280.15,\"temp_max\":281.75},\"wind\":{\"speed\":4.6,\"deg\":230},\"clouds\":{\"all\":90},\"dt\":1459925764,\"sys\":{\"type\":1,\"id\":5168,\"message\":0.0045,\"country\":\"GB\",\"sunrise\":1459920191,\"sunset\":1459968198},\"id\":2643743,\"name\":\"London\",\"cod\":200}";

        GsonBuilder builder = new GsonBuilder();
        Gson gson = builder.create();
        Weather weather = gson.fromJson(jsonlink, Weather.class);

        Log.i("Name", weather.name);
        }
    }


Буду благодарен за помощь!
  • Вопрос задан
  • 1509 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Достаточно создать класс и с помощью аннотации @SerializedName в классе Weather указать что куда заносить. Нет необходимости отсекать что-то. Если Gson не найдёт куда занести данные (нет схожего названия поля в классе Weather или не указано с помощью аннотации), то он не занесёт никуда. В чём именно проблема?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы