Как конвертировать JSONObject в Hashmap? - PullRequest
0 голосов
/ 27 февраля 2020
String jsonString  = "{"name":"kd","isMe":"yes","time":"10:12 AM"},{"name":"you","isMe":"no","time":"10:12 AM"}";

JSONObject jValueObject = новый JSONObject (jsonString);

    Iterator<?> values = jValueObject.keys();
    while(values.hasNext()){
        String final_key = (String)values.next();
        String final_value = jValueObject.getString(final_key);
        if (final_value != "")
            map.put(final_key, final_value);

        if (!final_key.equals("")) {
            sbkeys.append(final_key).append(',');
        }
    }
    Log.e("Final_Map", String.valueOf(map));
    itemList = sbkeys.toString();

Вывод: {name = kd, isMe = yes, время = 10: 12 AM}

Ответы [ 4 ]

0 голосов
/ 02 марта 2020
JSONObject jObject = new JSONObject(jsonString);
        Iterator<?> keys = jObject.keys();
        while (keys.hasNext()) {
            map = new HashMap<String, String>();
            sbkeys = new StringBuilder();

            String key = (String) keys.next();
            String value = jObject.getString(key);

            try{
                JSONObject jValueObject = new JSONObject(value);
                Iterator<?> values = jValueObject.keys();

                while (values.hasNext()) {
                    String final_key = (String) values.next();
                    String final_value = jValueObject.getString(final_key);

                    if (!final_value.equalsIgnoreCase("")) {
                        map.put(final_key, final_value);
                        sbkeys.append(final_key).append(',');
                    }
                }
            }catch (Exception e){
                e.fillInStackTrace();
            }
            try {
               //// Your Code..
            } catch (Exception e) {
                errorCode = "1";
            }
        }
0 голосов
/ 27 февраля 2020

это дублирующий вопрос, проверьте эти ответы Конвертировать JSONObject в карту

используйте Джексона (http://jackson.codehaus.org/) из http://json.org/

HashMap<String,Object> result =
    new ObjectMapper().readValue(<JSON_OBJECT>, HashMap.class);

или

Вы можете использовать библиотеку Gson () (com.google.gson), если у вас возникнут трудности с использованием Jackson.

HashMap<String, Object> yourHashMap = new Gson().fromJson(yourJsonObject.toString(), HashMap.class);
0 голосов
/ 27 февраля 2020

Прежде всего, если вам нужен массив json, который вам нужен в строке, заключите вашу строку в квадратные скобки. (Я ожидаю, что вы также избежали двойных кавычек).

    String jsonString  = "[{\"name\":\"kd\",\"isMe\":\"yes\",\"time\":\"10:12 AM\"},{\"name\":\"you\",\"isMe\":\"no\",\"time\":\"10:12 AM\"}]";

Теперь это JSONArray, а не JSONObject. Таким образом, чтобы получить список Maps,

JSONArray jValueArray = new JSONArray(jsonString);
List<Object> listOfMaps = jValueArray.toList();
System.out.println(listOfMaps);

Отпечатки:

[{isMe=yes, name=kd, time=10:12 AM}, {isMe=no, name=you, time=10:12 AM}]
0 голосов
/ 27 февраля 2020

Попробуйте этот код:

HashMap map = new HashMap<String, String>();
Iterator<?> values = jValueObject.keys();
while(values.hasNext()) {
    String final_key = (String)values.next();
    String final_value = jValueObject.optString(final_key, "");
    if (!final_value.equals(""))
        map.put(final_key, final_value);
}
for (k : map.keySet()) {
    Log.d("Final_Map", "map[" + key + "] : " + map.get(k));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...