Cómo analizar los campos dynamics JSON con GSON?

Así que estoy usando GSON para analizar JSON desde una API y estoy atascado en cuanto a cómo analizar los campos dynamics 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 estoy manejando 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 subdatos, ya que puedo consultar y obtener una sola entrada y analizarla con bastante facilidad, pero ¿qué ocurre con los valores enteros aleatorios dados para cada valor en la matriz? (es decir, el 30655845 y el 2868874)

¿Alguna ayuda?

De acuerdo con la documentación de GSON puedes hacer cosas como:

 Type mapType = new TypeToken >() {}.getType(); // define generic type Map result= gson.fromJson(new InputStreamReader(source), mapType); 

O puede intentar escribir un serializador personalizado para su clase.

Descargo de responsabilidad: Yo también, no tengo experiencia con GSon, pero con otros marcos como Jackson.