Comment dé-sérialiser une carte & lt; String, Object & gt; avec GSON
je suis assez nouveau à l'GSON et d'obtenir une réponse JSON de ce format (juste un exemple facile, de sorte que les valeurs n'ont pas de sens):
{
"Thomas": {
"age": 32,
"surname": "Scott"
},
"Andy": {
"age": 25,
"surname": "Miller"
}
}
Je veux GSON pour en faire une Carte, PersonData est évidemment un Objet. Le nom de la chaîne est l'identifiant de la PersonData.
Comme je l'ai dit, je suis très nouveau à GSON et seulement essayé quelque chose comme:
Gson gson = new Gson();
Map<String, PersonData> decoded = gson.fromJson(jsonString, new TypeToken<Map<String, PersonData>>(){}.getType());
mais ce jeté de l'erreur:
Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 3141
Toute aide est très appréciée 🙂
source d'informationauteur luuksen
Vous devez vous connecter pour publier un commentaire.
Les ouvrages suivants, pour moi
et imprime
Alors peut-être votre
PersonData
classe est très différent.Vous pouvez utiliser
gson.toJsonTree(Object o)
pour convertir votre objet personnalisé au format JSON.La suivante fonctionne pour moi:
et imprime: