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