J'essaye de désérialiser JSON en C# mais je reçois NullReferenceException et je ne sais pas pourquoi.Deserialzing JSON en C#
Voici JSON je suis en train d'analyser:
{"Entries": {"Entry": {"day": "28","month": "10","year": "1955","type": "birthday","title": "Bill Gates was born!","picture": "","video": ""}}}
et je suis en utilisant ce code
public class Entry
{
public string day { get; set; }
public string month { get; set; }
public string year { get; set; }
public string type { get; set; }
public string title { get; set; }
public string picture { get; set; }
public string video { get; set; }
}
public class Entries
{
public List<Entry> entry { get; set; }
}
private void buttonSearch_Click(object sender, EventArgs e)
{
string json = new StreamReader("events.json").ReadToEnd();
var entries = JsonConvert.DeserializeObject<Entries>(json);
MessageBox.Show(entries.entry[0].day); // NullReferenceException
}
Pourquoi ai-je cette erreur et comment puis-je résoudre ce problème?
et quand je change le JSON
{"Entries": ["Entry": {"day": "28","month": "10","year": "1955","type": "birthday","title": "Bill Gates was born!","picture": "","video": ""}]}
Je reçois After parsing a value an unexpected character was encountered: :. Path 'Entries[0]', line 1, position 20.
EDIT
J'ai joué avec le JSON et celui ci-dessous a fonctionné pour moi:
[{"day": "28","month": "10","year": "1955","type": "birthday","title": "Bill Gates was born!","picture": "","video": ""}]
Joindre un débogueur. Inspectez les données désérialisées réelles. Quoi qu'il en soit, le problème est * il n'y a pas de tableau * dans le JSON. – user2246674
Le débogueur dit que les entrées sont nulles et je ne vois pas pourquoi. – armin
".. le problème est * il n'y a pas de tableau * dans le JSON". Le désérialiseur nécessite un tableau pour pouvoir remplir l'entrée 'List'. Faites confiance au désérialiseur - s'il ne remplit pas correctement un champ, les données sources ne s'aligneront probablement pas. (De plus, certains noms - par exemple Entrée vs entrée - sont incorrects.) –
user2246674