¿Cómo analizar campos JSON dinámicos con GSON?

Así que estoy usando GSON para analizar JSON desde una API y estoy atascado en cuanto a cómo analizar los campos dinámicos en los datos.

Aquí hay un ejemplo de los datos JSON devueltos en una consulta:

{

-
30655845: {
    id: "30655845"
    name: "testdata
    description: ""
    latitude: "38"
    longitude: "-122"
    altitude: "0"
    thumbnailURL: http://someimage.com/url.jpg
    distance: 9566.6344386665
}
-
28688744: {
    id: "28688744"
    name: "testdata2"
    description: ""
    latitude: "38"
    longitude: "-122"
    altitude: "0"
    thumbnailURL: http://someimage.com/url.jpg
    distance: 9563.8328713012
}
}

La forma en que actualmente manejo los valores estáticos individuales es con una clase:

import com.google.gson.annotations.SerializedName;

public class Result 
{
@SerializedName("id")
public int id;

@SerializedName("name")
public String name;

@SerializedName("description")
public String description;

@SerializedName("latitude")
public Double latitude;

@SerializedName("longitude")
public Double longitude;

@SerializedName("altitude")
public Double altitude;

@SerializedName("thumbnailURL")
public String thumbnailURL;

@SerializedName("distance")
public Double distance;
}

Y luego simplemente puedo usar GSON para analizar eso:

Gson gson = new Gson();

Reader reader = new InputStreamReader(source);

Result response= gson.fromJson(reader, Result.class);

Sé que esto funciona en los datos secundarios, ya que puedo consultar y obtener una sola entrada y analizar con bastante facilidad, pero ¿qué pasa con los valores enteros aleatorios dados para cada valor en la matriz? (es decir, los 30655845 y 2868874)

¿Alguna ayuda