ho un po 'strano come JSON:GSON deserializzare matrice JSON con più tipi di oggetti
[
{
"type":"0",
"value":"my string"
},
{
"type":"1",
"value":42
},
{
"type":"2",
"value": {
}
}
]
Sulla base di qualche campo, l'oggetto nella matrice è un certo tipo. Usando Gson, il mio pensiero è di avere un TypeAdapterFactory che mandi gli adattatori delegati per quei determinati tipi a un TypeAdapter, ma sono costretto a capire un buon modo di leggere quel campo "type" per sapere quale tipo creare. Nel TypeAdapter,
Object read(JsonReader in) throws IOException {
String type = in.nextString();
switch (type) {
// delegate to creating certain types.
}
}
potrebbe supporre il campo "tipo" viene prima di tutto nella mia JSON. C'è un modo decente per rimuovere quell'ipotesi?
Grazie Jake per aver reso il codice migliore. –
Sì, buon esempio anche! –