В настоящее время я работаю над решением, которое десериализует список электронной почты из массива json
. Получив список объектов электронной почты, я проверяю, используя другой класс, а затем помещаю его в другой список.
Ниже приведен код для десериализации:
static void Main(string[] args)
{
string jsonTest = "{\"Emails\":[\"testUser@gmail.com\",\"testUser2@gmail.com\"]}";
Class1 contact = JsonConvert.DeserializeObject<Class1>(jsonTest);
Console.WriteLine(contact.Emails[0]);
Console.WriteLine(contact.Emails[1]);
}
И ниже приведено определение класса для Class1
для десериализации:
public class Class1
{
private readonly List<ValidateEmail> emailsobj;
public List<string> Emails
{
get
{
return emailsobj.Select(o => o.EmailAdd).ToList();
}
set
{
foreach (string email in value)
{
emailsobj.Add(new ValidateEmail(email));
}
}
}
}
И ниже validate
class:
public class ValidateEmail
{
public string EmailAdd { get; set; }
private bool Valid;
public ValidateEmail(string value)
{
try
{
MailAddress mail = new MailAddress(EmailAdd);
EmailAdd = value;
Valid = true;
}
catch (FormatException)
{
Valid = false;
}
}
}
Всякий раз, когда я десериализую, я получаю исключение в строке:
Console.WriteLine(contact.Emails[0]);
Newtonsoft. Json .JsonSerializationException: Ошибка при получении значения из 'электронных писем 'на' JsonGenerator.Class1 '. ---> System.ArgumentNullException: значение не может быть нулевым. (Параметр 'source')
Похоже, что List<Email>
никогда не устанавливалось. Любая помощь по этому поводу была бы очень признательна.