OK, lets take for example server answer for "root" resource.
In order to deserialize this string with GSON properly there should be:
- a class which contains field "_links" (JsonResponse class)
- "_links" should be a class which contains at least 5 fields called: "self," "games", "login", "register", "userGames"
- each of these fields should be a class which contains at least 1 field called "href"

When you use GSON to deserialize it will set values of fields automatically. So to deserialize this JSON you can do:
JsonResponse jsonResponse = gson.fromJson(jsonString, JsonResponse.class);