Gson JSON-Array mit mehreren Objekttypen deserialisieren

Ich habe einige seltsame JSON wie:

[
  {
    "type":"0",
    "value":"my string"
  },
  {
    "type":"1",
    "value":42
  },
  {
    "type":"2",
    "value": {
    }
  }
]

Basierend auf einem bestimmten Feld hat das Objekt im Array einen bestimmten Typ. Unter Verwendung von Gson möchte ich eine TypeAdapterFactory haben, die Delegatadapter für diese bestimmten Typen an einen TypeAdapter sendet. Ich bin jedoch auf der Suche nach einer guten Möglichkeit, dieses "Typ" -Feld zu lesen, um zu wissen, welcher Typ erstellt werden soll. Im TypeAdapter wird

Object read(JsonReader in) throws IOException {
  String type = in.nextString();
  switch (type) {
    // delegate to creating certain types.
  }
}

würde annehmen, dass das Feld "Typ" in meinem JSON an erster Stelle steht. Gibt es einen vernünftigen Weg, diese Annahme zu beseitigen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage