No meu primeiro aplicativo gson, evitei usar classes adicionais para capturar valores, principalmente porque uso o json para questões de configuração
apesar da falta de informação (mesmo na página gson), foi o que encontrei e usei:
Começando de
Map jsonJavaRootObject = new Gson().fromJson("{/*whatever your mega complex object*/}", Map.class)
Cada vez que o gson vê um {}, ele cria um mapa (na verdade, um gson StringMap)
Cada vez que o gson vê um '', ele cria uma String
Cada vez que o gson vê um número, ele cria um Double
Cada vez que o gson vê um [], ele cria um ArrayList
Você pode usar esses fatos (combinados) para sua vantagem
Finalmente, este é o código que faz a coisa
Map<String, Object> javaRootMapObject = new Gson().fromJson(jsonLine, Map.class);
System.out.println(
(
(Map)
(
(List)
(
(Map)
(
javaRootMapObject.get("data")
)
).get("translations")
).get(0)
).get("translatedText")
);