Questo Imgur api chiamata restituisce un elenco contenente sia Galleria immagini e Gallery Album classi rappresentate in JSON.deserializzazione JSON classi polimorfiche senza informazioni sul tipo di utilizzo json.net
Non riesco a vedere come deserializzare questi automaticamente utilizzando Json.NET dato che non esiste alcuna proprietà di tipo $ che dice al deserializzatore quale classe deve essere rappresentata. Esiste una proprietà chiamata "IsAlbum" che può essere utilizzata per differenziare i due.
This domanda sembra mostrare un metodo ma sembra un po 'un hack.
Come faccio per deserializzare queste classi? (utilizzando C#, Json.NET).
dati di esempio:
Galleria immagini
{
"id": "OUHDm",
"title": "My most recent drawing. Spent over 100 hours.",
...
"is_album": false
}
Gallery Album
{
"id": "lDRB2",
"title": "Imgur Office",
...
"is_album": true,
"images_count": 3,
"images": [
{
"id": "24nLu",
...
"link": "http://i.imgur.com/24nLu.jpg"
},
{
"id": "Ziz25",
...
"link": "http://i.imgur.com/Ziz25.jpg"
},
{
"id": "9tzW6",
...
"link": "http://i.imgur.com/9tzW6.jpg"
}
]
}
}
Si vuole prendere la stringa JSON e metterlo in classi? E sono confuso da cosa intendi per "non esiste una proprietà di tipo $". – gunr2171
Sì, ho la stringa json e voglio deserializzare in classi C#. Sembra che Json.NET usi una proprietà chiamata $ type per tracciare una distinzione tra diversi tipi tenuti in un array. Questi dati non hanno quella proprietà e usano solo la proprietà 'IsAlbum'. –