Как обработать ассоциативный массив из JSON в Android Java - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь обработать вывод JSON из https://api.exchangeratesapi.io/latest в моем приложении Android, которое возвращается в следующем формате:

{
  "rates": {
    "CAD": 1.5613,
    "HKD": 8.9041,
    ...
    "KRW": 1374.71,
    "MYR": 4.8304
  },
  "base": "EUR",
  "date": "2020-03-09"
}

Я хотел бы используйте GSON для обработки JSON, поэтому я добавил класс ExchangeRates для получения данных:

class ExchangeRates {
    private String base;
    private String date;
}

Эти команды загружают JSON в мой класс ExchangeRates:

Gson gson = new Gson();
ExchangeRates mExchangeRates = gson.fromJson(result, ExchangeRates.class);

Однако я не могу понять, как загружать ассоциативный массив курсов валют в класс в масштабируемой форме. Я знаю, что могу добавить список валют c, но я хочу, чтобы код мог автоматически обрабатывать дополнительные валюты, если они будут добавлены позднее.

1 Ответ

0 голосов
/ 10 марта 2020

Это оказалось очень просто, и да, @ ya379, HashMap был частью ответа. Учитывая тип данных HashMap, GSON преобразует часть ассоциативного массива JSON непосредственно в HashMap:

class ExchangeRates {
    private String base;
    private String date;
    private HashMap<String, Double> rates;
}
...