Я пытаюсь проанализировать данные из фида API oodle.com, используя библиотеку JSON.NET.Часть ответной строки JSON для десериализации имеет следующую структуру 'location':
"location":{
"address":"123 foo Street",
"zip":"94102",
"citycode":"usa:ca:sanfrancisco:downtown",
"name":"San Francisco (Downtown)",
"state":"CA",
"country":"USA",
"latitude":"37.7878",
"longitude":"-122.4101"},
, однако я видел экземпляры location, объявленные как пустой массив:
"location":[],
Япытаясь десериализовать его в классе типа Location Data.Это прекрасно работает, когда в локации есть действительные данные, но не очень хорошо, когда локация представлена в виде пустого массива.Я попытался добавить атрибуты (NullValueHandling & Required), чтобы установить экземпляр местоположения как ноль, если данные действительно являются пустым массивом, но я думаю, что эти атрибуты предназначены только для сериализации.Если массив пуст, я получаю исключение
Cannot deserialize JSON array into type 'LocationData'
Есть ли способ сообщить десериализатору, чтобы он не жаловался, и сделать объект местоположения пустым, если в массиве десериализация не удалась?Спасибо!
[JsonProperty(NullValueHandling = NullValueHandling.Ignore,Required=Required.AllowNull)]
public LocationData location{get;set;}
...
public class LocationData
{
public string zip { get; set; }
public string address { get; set; }
public string citycode { get; set; }
public string name { get; set; }
public string state { get; set; }
public string country { get; set; }
public decimal latitude { get; set; }
public decimal longitude { get; set; }
}