Я работаю с VK API. Иногда сервер может возвращать пустой массив вместо объекта, например:
personal: [] //when it is empty
or
personal: {
religion: 'Нет',
smoking: 1,
alcohol: 4
} //when not empty.
Я десериализую большую часть json с помощью JsonConvert.DeserializeObject, а эту часть json с
MainObject = ((MainObject["response"].GetObject())["user"].GetObject())["personal"].GetObject();
try
{
Convert.ToByte(MainObject["political"].GetNumber();
}
catch {}
Но это заставляет приложение работать медленно, когда оно обрабатывает много исключений. И только сейчас я понял, что вот еще несколько полей, которые могут возвращать массив, когда они пусты. У меня просто нет идей, как это сделать быстро и четко. Какие-либо предложения?
Мой класс десериализации (не работает, когда поле пустое):
public class User
{
//some other fields...
public Personal personal { get; set; }
//some other fields...
}
public class Personal
{
public byte political { get; set; }
public string[] langs { get; set; }
public string religion { get; set; }
public string inspired_by { get; set; }
public byte people_main { get; set; }
public byte life_main { get; set; }
public byte smoking { get; set; }
public byte alcohol { get; set; }
}
Другая идея (не работает, когда не пусто):
public List<Personal> personal { get; set; }