如何处理来自 JSON in Android Java 的关联数组
How to process an associative array from JSON in Android Java
我正在尝试在我的 Android 应用程序中处理来自 https://api.exchangeratesapi.io/latest 的 JSON 输出,它以这种格式返回:
{
"rates": {
"CAD": 1.5613,
"HKD": 8.9041,
...
"KRW": 1374.71,
"MYR": 4.8304
},
"base": "EUR",
"date": "2020-03-09"
}
我想使用 GSON 来处理这个 JSON,所以我添加了一个 class ExchangeRates 来接收数据:
class ExchangeRates {
private String base;
private String date;
}
这些命令将 JSON 加载到我的 ExchangeRates class:
Gson gson = new Gson();
ExchangeRates mExchangeRates = gson.fromJson(result, ExchangeRates.class);
但是,我不知道如何以可扩展的方式将汇率的关联数组加载到 class 中。我知道我可以添加货币的静态列表,但我希望代码能够自动处理以后添加的其他货币。
原来很简单,是的,@ya379,HashMap 是答案的一部分。给定一个 HashMap 数据类型,GSON 会将 JSON 的关联数组部分直接转换为 HashMap:
class ExchangeRates {
private String base;
private String date;
private HashMap<String, Double> rates;
}
我正在尝试在我的 Android 应用程序中处理来自 https://api.exchangeratesapi.io/latest 的 JSON 输出,它以这种格式返回:
{
"rates": {
"CAD": 1.5613,
"HKD": 8.9041,
...
"KRW": 1374.71,
"MYR": 4.8304
},
"base": "EUR",
"date": "2020-03-09"
}
我想使用 GSON 来处理这个 JSON,所以我添加了一个 class ExchangeRates 来接收数据:
class ExchangeRates {
private String base;
private String date;
}
这些命令将 JSON 加载到我的 ExchangeRates class:
Gson gson = new Gson();
ExchangeRates mExchangeRates = gson.fromJson(result, ExchangeRates.class);
但是,我不知道如何以可扩展的方式将汇率的关联数组加载到 class 中。我知道我可以添加货币的静态列表,但我希望代码能够自动处理以后添加的其他货币。
原来很简单,是的,@ya379,HashMap 是答案的一部分。给定一个 HashMap 数据类型,GSON 会将 JSON 的关联数组部分直接转换为 HashMap:
class ExchangeRates {
private String base;
private String date;
private HashMap<String, Double> rates;
}