2016-12-19 4 views
0

У меня есть JSON хранится в БД, как это,Как конвертировать JSON в HashMap и сравнивать их?

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

], 

Чтобы получить доступ к этому в моем приложении коде, я сделать что-то вроде этого ..

getISOProfileDB.getSupportedISOCodes(); 

У меня есть строка, которая вводит пользователь (предоставляет входную строку, такую ​​как EUR, USD и т. д.). Как я могу преобразовать вышеупомянутый json в HashMap и сравнить его с другой строкой? То, чего я пытаюсь достичь, -

  1. Сравнить Ключевая часть json для пользовательской строки ввода (EUR).
  2. Если они совпадают,
  3. Проанализируйте значение json и сохраните его в переменной.

Ниже то, что я пытаюсь достичь,

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

ответ

-1

Вы должны рассмотреть возможность использования JSONObject (Jsonobject.org) или Gson.

+1

Ответ на этот вопрос будет улучшен, если привести пример, относящийся к коду OP. Как и в настоящее время, ваш «ответ» скорее является комментарием, чем решением. –

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()); 
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); 

Надеюсь, что это поможет :)