Gson deserializa la matriz JSON con múltiples tipos de objetos
Tengo algunos JSON extraños como:
[
{
"type":"0",
"value":"my string"
},
{
"type":"1",
"value":42
},
{
"type":"2",
"value": {
}
}
]
Basado en algún campo, el objeto en la matriz es de cierto tipo. Al usar Gson, mi idea es tener un TypeAdapterFactory que envíe adaptadores delegados para esos tipos determinados a un TypeAdapter, pero estoy obsesionado con comprender una buena forma de leer ese campo de "tipo" para saber qué tipo crear. En el TypeAdapter,
Object read(JsonReader in) throws IOException {
String type = in.nextString();
switch (type) {
// delegate to creating certain types.
}
}
supondría que el campo "tipo" viene primero en mi JSON. ¿Hay alguna forma decente de eliminar esa suposición?