如何将JSON转换为HashMap并进行比较?

时间:2016-12-19 17:45:46

标签: java android json hashmap gson

我有一个json存储在这样的数据库中,

"supported_iso_codes":[
 {
      "EUR": "978",
      "USD": "840"
    }

],

要在我的应用代码中访问此内容,我会执行以下操作..

getISOProfileDB.getSupportedISOCodes();

我有一个用户输入的字符串(提供欧元,美元等输入字符串)。如何将上面的json转换为HashMap并将其与另一个字符串进行比较?我想要实现的是,

  1. 将json的关键部分与用户输入字符串(EUR)进行比较。
  2. 如果两者匹配,
  3. 解析json的值部分并将其存储在变量中。
  4. 以下是我想要实现的目标,

       tran.setCurrency(hashMapOfJson.get(currencyString));
    

3 个答案:

答案 0 :(得分:0)

使用Gson:

dependencies {
    compile 'com.google.code.gson:gson:2.2.4'
}

然后:

Map<String, Object> supported_iso_codes = new Gson().fromJson(getISOProfileDB.getSupportedISOCodes(), new TypeToken<HashMap<String, Object>>() {}.getType());

答案 1 :(得分:0)

你可以做这样的事情

        Gson gson = new Gson();
        Type type = new TypeToken<List<Map<String, String>>>(){}.getType();
        final ArrayList<HashMap<String,String>> isoCodesMapList = gson.fromJson(data, type);
        System.out.println(arrayList);

然后获取用户选择的货币

isoCodesMapList.get(userSelectedCurrency);

希望这会有所帮助:)

答案 2 :(得分:-1)

您应该考虑使用JSONObject(Jsonobject.org)或Gson。