Gson a HashMap

C'è un modo per convertire uno String contenente json in un HashMap, in cui each chiave è un json-key e il valore è il valore del json-key? Il json non ha valori nidificati. Sto usando il libretto di Gson.

Ad esempio, dato JSON:

  • Non esiste alcun dispositivo Android mostrato nel mio studio androido
  • L'image di background salta quando la barra degli indirizzi nasconde iOS / Android / Mobile Chrome
  • Imansible simulare i dati di località nell'emulatore Android
  • Rimuovi l'icona della password di visualizzazione in Android N
  • Debug di applicazioni native di Android NDK
  • Cassetto di navigazione in reattivo nativo
  • { "id":3, "location":"NewYork" } 

    risultante HashMap:

     <"id", "3"> <"location", "NewYork"> 

    Grazie

  • Eccezione di fatturazione Android
  • Eclipse è andata pazza (da aggiornamento SDK lolipop)
  • Lingua della data
  • Android utilizzando Gradle Crea sapori nel codice come se fosse un caso
  • Android E / Parcel: La class non è stata trovata quando si è sposata (solo su Samsung Tab3)
  • Android - Come rendere tutte le righe in un sottotitolo?
  • 3 Solutions collect form web for “Gson a HashMap”

    Utilizza TypeToken , come per le FAQ di GSON :

     Gson gson = new Gson(); Type stringStringMap = new TypeToken<Map<String, String>>(){}.getType(); Map<String,String> map = gson.fromJson(json, stringStringMap); 

    Nessun casting. Nessuna creazione di oggetti inutili.

    Se uso la soluzione TypeToken con una mappa < Enum , Object> ottengo "chiave duplicata: null".

    La soluzione migliore per me è:

     String json = "{\"id\":3,\"location\":\"NewYork\"}"; Gson gson = new Gson(); Map<String, Object> map = new HashMap<String, Object>(); map = (Map<String, Object>)gson.fromJson(json, map.getClass()); 

    Risultato:

     {id=3.0, location=NewYork} 

    Mi piace:

     private static class MyMap extends HashMap<String,String> {}; ... MyMap map = gson.fromJson(json, MyMap.class); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.