@Override public Team deserialize(JsonElement json, Type arg1, JsonDeserializationContext arg2) throws JsonParseException { JsonObject jsonObject = json.getAsJsonObject(); Integer teamId = jsonObject.get("teamId").getAsInt(); String teamName = jsonObject.get("teamName").getAsString(); List<User> teamUsers = new ArrayList<>(); jsonObject .get("teamUsers") .getAsJsonArray() .forEach( tu -> { teamUsers.add(JSON_MAPPER.jsonToUser(tu)); }); return new Team(teamId, teamName, teamUsers); }