Ho un grande set di dati JSON che devo deserializzare. Sto usando Jawa.net JsonTextReader
per leggere i dati.Deserializzare le classi derivate utilizzando Json.net senza utilizzare JObject
Il mio problema è che ho bisogno di deserializzare alcune classi derivate, quindi devo essere in grado di "guardare avanti" per una particolare proprietà che definisce il mio tipo di dati. Nell'esempio seguente, il parametro "tipo" viene utilizzato per determinare il tipo di oggetto da deserializzare.
{
type: "groupData",
groupParam: "groupValue1",
nestedObject:
{
type: "groupData",
groupParam: "groupValue2",
nestedObject:
{
type: "bigData",
arrayData: [ ... ]
}
}
I miei oggetti derivati possono essere fortemente nidificati e molto profondi. Caricare l'intero set di dati in memoria non è desiderato poiché richiederà molta memoria. Una volta arrivato all'oggetto "bigData", elaborerò i dati (come la matrice nell'esempio sopra), ma non verranno archiviati in memoria (è troppo grande).
Tutte le soluzioni al mio problema che ho visto finora hanno utilizzato JObject
per deserializzare gli oggetti parziali. Voglio evitare di usare JObject
perché deserializza ripetutamente ogni oggetto lungo la gerarchia.
Come posso risolvere il mio problema di deserializzazione?
Esiste un modo per cercare in anticipo il parametro "tipo", quindi tornare all'inizio del carattere {del carattere dell'oggetto per avviare l'elaborazione?
non riesci a farla finita con il campo di tipo e specificare il tipo manualmente nella classe in cui si deserializza? Fornire i tipi non cambia tutto il tempo che è. –