Я пытаюсь десериализовать JSON в C#, но я получаю исключение NullReferenceException, и я не знаю почему.Deserialzing JSON в C#
Вот это JSON Я пытаюсь разобрать:
{"Entries": {"Entry": {"day": "28","month": "10","year": "1955","type": "birthday","title": "Bill Gates was born!","picture": "","video": ""}}}
и я использую этот код
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
}
Почему я получаю эту ошибку и как я могу это исправить?
и когда я изменить JSON в
{"Entries": ["Entry": {"day": "28","month": "10","year": "1955","type": "birthday","title": "Bill Gates was born!","picture": "","video": ""}]}
я After parsing a value an unexpected character was encountered: :. Path 'Entries[0]', line 1, position 20.
EDIT
Я играл с JSON и одним сильфоном работал для меня:
[{"day": "28","month": "10","year": "1955","type": "birthday","title": "Bill Gates was born!","picture": "","video": ""}]
Прикрепление отладчика. Проверьте фактические десериализованные данные. В любом случае проблема заключается в том, что в JSON нет массива *. – user2246674
Отладчик говорит, что записи имеют значение null, и я не понимаю, почему. – armin
«Проблема в том, что в JSON нет массива *. Для десериализатора требуется, чтобы массив мог заполнить «Список entry'. Доверяйте десериализатору - если он не заполняет поле правильно, то исходные данные, вероятно, не выровнены. (Кроме того, некоторые имена - например, «Вступление в запись» - неверны.) –
user2246674