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:

  • Come leggere il file di text in Android?
  • Come triggersre lo scorrimento su un semplice adattatore sul firmware X16 di Google Glass
  • Codice per lanciare esplicitamente l'applicazione esterna
  • Invia l'output Logcat di un'app App to a EmailAdress
  • Che cosa fa esattamente il metodo post?
  • java.util.zip.ZipException: inserimento duplicato
  • { "id":3, "location":"NewYork" } 

    risultante HashMap:

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

    Grazie

  • Come cambiare tutte le transizioni di attività contemporaneamente in un'applicazione Android?
  • Conversione dei valori Latitude / Longitudine (formato DMS + Compass Direction) ai corrispondenti valori del decimale in Android
  • Come get i dispositivi bluetooth come un elenco?
  • Incongruenza rilevata in RecyclerView, Come modificare il contenuto di RecyclerView durante lo scorrimento
  • L'emulatore di Virtual Box basato su Android 4.0 non è in grado di rilevare Bluetooth 4.0 da computer porttile
  • Convenzione di denominazione di cartelle per varianti di costruzione di gradle
  • 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.