Ich habe einige ungerade JSON wie:Gson deserialisieren JSON Array mit mehreren Objekttypen
[
{
"type":"0",
"value":"my string"
},
{
"type":"1",
"value":42
},
{
"type":"2",
"value": {
}
}
]
auf irgendeinem Feld basiert, das Objekt in der Anordnung ist eine bestimmte Art. Mit Gson denke ich daran, eine TypeAdapterFactory zu haben, die Delegate-Adapter für diese bestimmten Typen an einen TypeAdapter sendet, aber ich bin aufgehört zu verstehen, wie man dieses "type" -Feld liest, um zu wissen, welcher Typ erstellt werden soll. Im TypeAdapter,
Object read(JsonReader in) throws IOException {
String type = in.nextString();
switch (type) {
// delegate to creating certain types.
}
}
würde das Feld "Typ" steht an erster Stelle in meinem JSON übernehmen. Gibt es einen vernünftigen Weg, diese Annahme zu entfernen?
Danke Jake für die Verbesserung des Codes. –
Ja, gutes Beispiel auch! –