Java. JSON to Map with Gson


Any deserialization from JSON in Java with Gson looks like this


public <T> T fromJson(String json, Type typeOfT)

or

public <T> T fromJson(String json, Class<T> classOfT)

Gson, JSON to Map in Java

For deserialization from JSON to Map I would use the second one.

Let’s say we have String json


    {
      "123": {
        "username": "admin",
        "password": "TopSecret"
      },
      "124": {
        "username": "user",
        "password": "Secret"
      },
      "125": {
        "username": "guest",
        "password": "123456"
      }
    }

which represent Map<String, User> where User is

    class User {
        private String username;
        private String password;
        ...
    }

Then the Java code for deserialization from JSON to Map with Gson will look like this

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

You may also find these posts interesting: