java - 循环遍历 JSON 数据将其保存到 HashMap 中

标签 java android

如何循环遍历所有这些数据以将其保存到 HashMap 中?或者也许还有其他更好的解决方案?

回应

    {
  "rates": {
    "CAD": 1.5521,
    "HKD": 8.5095,
    "ISK": 154.0,
    "PHP": 56.125,
    "DKK": 7.4606,
    "HUF": 355.65,
    "CZK": 27.299,
    "AUD": 1.8209,
    "RON": 4.8375,
    "SEK": 11.0158,
    "IDR": 17716.88,
    "INR": 82.8695,
    "BRL": 5.5905,
    "RUB": 86.3819,
    "HRK": 7.614,
    "JPY": 119.36,
    "THB": 35.769,
    "CHF": 1.0581,
    "SGD": 1.5762,
    "PLN": 4.5306,
    "BGN": 1.9558,
    "TRY": 7.0935,
    "CNY": 7.7894,
    "NOK": 11.6558,
    "NZD": 1.8548,
    "ZAR": 19.3415,
    "USD": 1.0977,
    "MXN": 25.8329,
    "ILS": 3.9413,
    "GBP": 0.89743,
    "KRW": 1346.31,
    "MYR": 4.7619
  },
  "base": "EUR",
  "date": "2020-03-27"
}

................................

最佳答案

您可以直接创建自己的对象,其中包括使用 gson 库直接从 json 反序列化的 rates HashMap。 首先声明您的类如下:

public class Component{

    HashMap<String,Float> rates;

    String base;

    String date;

    //...

    @Override
    public String toString() {
        return "Component{" +
                "rates=" + rates +
                ", base='" + base + '\'' +
                ", date='" + date + '\'' +
                '}';
    }
}

然后将其反序列化:

Component component = new Gson().fromJson(json, Component.class);

这是一个完整的 junit 示例:

@Test
public void testDeserialization() {

    String json = "    {\n" +
            "  \"rates\": {\n" +
            "    \"CAD\": 1.5521,\n" +
            "    \"HKD\": 8.5095,\n" +
            "    \"ISK\": 154.0,\n" +
            "    \"PHP\": 56.125,\n" +
            "    \"DKK\": 7.4606,\n" +
            "    \"HUF\": 355.65,\n" +
            "    \"CZK\": 27.299,\n" +
            "    \"AUD\": 1.8209,\n" +
            "    \"RON\": 4.8375,\n" +
            "    \"SEK\": 11.0158,\n" +
            "    \"IDR\": 17716.88,\n" +
            "    \"INR\": 82.8695,\n" +
            "    \"BRL\": 5.5905,\n" +
            "    \"RUB\": 86.3819,\n" +
            "    \"HRK\": 7.614,\n" +
            "    \"JPY\": 119.36,\n" +
            "    \"THB\": 35.769,\n" +
            "    \"CHF\": 1.0581,\n" +
            "    \"SGD\": 1.5762,\n" +
            "    \"PLN\": 4.5306,\n" +
            "    \"BGN\": 1.9558,\n" +
            "    \"TRY\": 7.0935,\n" +
            "    \"CNY\": 7.7894,\n" +
            "    \"NOK\": 11.6558,\n" +
            "    \"NZD\": 1.8548,\n" +
            "    \"ZAR\": 19.3415,\n" +
            "    \"USD\": 1.0977,\n" +
            "    \"MXN\": 25.8329,\n" +
            "    \"ILS\": 3.9413,\n" +
            "    \"GBP\": 0.89743,\n" +
            "    \"KRW\": 1346.31,\n" +
            "    \"MYR\": 4.7619\n" +
            "  },\n" +
            "  \"base\": \"EUR\",\n" +
            "  \"date\": \"2020-03-27\"\n" +
            "}";

    final Component component = new Gson().fromJson(json, Component.class);
    System.out.println(component);

}

关于java - 循环遍历 JSON 数据将其保存到 HashMap 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60901973/

相关文章:

android - pc端使用wireshark监控安卓手机流量

android - Gradle 构建步骤注释 kapt 不构建

java - 警告 JAR 将为空 - 没有内容被标记为包含

java - 如何在天气应用中添加城市选择?

java - 无法在回调中赋值

android - Fused Location Api 从 GPS 获取时间

android - TextView.setText() 不起作用

java - AndEngine 背景缩放

java - 给定一个单例 : need for static methods and vars?

java - 在java中实现信号量