Sono abbastanza nuovo per GSON e ottenere una risposta JSON di questo formato (solo un esempio più semplice, in modo che i valori non hanno senso):Come de-serializzare una mappa <String, Object> con GSON
{
"Thomas": {
"age": 32,
"surname": "Scott"
},
"Andy": {
"age": 25,
"surname": "Miller"
}
}
Voglio che GSON faccia una mappa, PersonData è ovviamente un oggetto. La stringa del nome è l'identificativo per PersonData.
Come ho detto Sono molto nuovo per GSON e provato solo qualcosa di simile:
Gson gson = new Gson();
Map<String, PersonData> decoded = gson.fromJson(jsonString, new TypeToken<Map<String, PersonData>>(){}.getType());
ma questo buttato l'errore:
Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 3141
Ogni aiuto è apprezzato :)
tuo JSON non è valido. Ho bisogno di una virgola prima di "Andy" – Taylor
Mi dispiace, il JSON è sicuramente valido. Ho appena accorciato il JSON e l'ho dimenticato. Si tratta più della parte GSON su come interpretarla in base al valore-chiave in cui value è un oggetto che deve essere serializzato da GSON. – luuksen