En mi primera aplicación gson evité usar clases adicionales para capturar valores principalmente porque uso json para cuestiones de configuración
a pesar de la falta de información (incluso la página de gson), eso es lo que encontré y usé:
empezando desde
Map jsonJavaRootObject = new Gson().fromJson("{/*whatever your mega complex object*/}", Map.class)
Cada vez que gson ve un {}, crea un mapa (en realidad un gson StringMap)
Cada vez que gson ve un '', crea una cadena
Cada vez que gson ve un número, crea un Doble
Cada vez que gson ve un [], crea una ArrayList
Puede usar estos hechos (combinados) para su ventaja
Finalmente este es el código que hace la cosa
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")
);