【问题标题】:How to process an associative array from JSON in Android Java如何在 Android Java 中处理来自 JSON 的关联数组
【发布时间】:2020-06-22 07:49:49
【问题描述】:

我正在尝试在我的 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,所以我添加了一个类 ExchangeRates 来接收数据:

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

这些命令将 JSON 加载到我的 ExchangeRates 类中:

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

但是,我无法弄清楚如何以可扩展的方式将汇率关联数组加载到类中。我知道我可以添加货币的静态列表,但我希望代码能够在以后添加其他货币时自动处理它们。

【问题讨论】:

  • 您是否考虑过自定义反序列化器?
  • Here 是 StackOverflow 上的类似解决方案。
  • 你不能使用 HashMap 吗?

标签: java android json associative-array


【解决方案1】:

结果非常简单,是的,@ya379,HashMap 是答案的一部分。给定 HashMap 数据类型,GSON 会将 JSON 的关联数组部分直接转换为 HashMap:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 2014-01-07
    • 1970-01-01
    • 2021-07-23
    • 2018-10-28
    • 2012-06-10
    相关资源
    最近更新 更多