Autore Topic: gson.fromJson su array di oggetti custom  (Letto 444 volte)

Offline Zampa

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Tab 2 7.0
  • Sistema operativo:
    Windows 8
gson.fromJson su array di oggetti custom
« il: 27 Aprile 2014, 11:09:29 CEST »
0
Ciao,
nella applicazione che sto realizzando dovrei deserializzare un array di oggetti custom da una stringa in formato JSON.
Nel momento della deserializzazione so solo che devo aspettarmi un oggetto del tipo Notification[], all'interno del quale ci sono altri oggetti custom che ereditano da Notification (ChallengeNotification, PointsNotification, ...) ma non so il tipo esatto.
Ho provato a deserializzare i dati in questo modo:

Type crNotType = (Type) new TypeToken<Notification[]>(){}.getType();
Notification[] notifications = gson.fromJson(nr.Data, crNotType);

for(Notification nt:notifications) {
   if (nt instanceof ChallengeNotification) {
      // processo la notifica di tipo Challenge
   } else if (nt instanceof PointsNotification) {
      // processo la notifica di tipo Points
   } else {
      //Altra notifica
   }
}

purtroppo però quando vado a verificare gli oggetti contenuti in "notifications" sono tutti di tipo Notification ed espongono solo le proprietà di tale oggetto.

Qualche idea su come risolvere il problema?

Grazie,
Nicola