Gson deserialize into map
First, enclose the JSON string inside {...}
, then you can easily convert it into Map as shown below:
class PlayerObject { private String uuid; private String name; private String signup_time; // getters & setters}Gson gson = new Gson();Type type = new TypeToken<Map<String, ArrayList<Map<String, PlayerObject>>>>(){}.getType();Map<String, ArrayList<Map<String, PlayerObject>>> map = gson.fromJson(jsonString, type);
Is it possible to have the map like:
Map<String, PlayerObject>
players?
Yes, you can convert it into desired format as shown below:
Map<String,PlayerObject> players=new HashMap<String,PlayerObject>();for(Map<String, PlayerObject> m:map.get("players_test")){ for(String key:m.keySet()){ players.put(key, m.get(key)); }}System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(players));