Десериализация таким образом, чтобы поле было пустым списком, а не нулевым значением

Если у меня есть такой класс:

[DataContract(Name = "", Namespace = "")]
public class MyDataObject
{
    [DataMember(Name = "NeverNull")]
    public IList<int> MyInts { get; set; }
}

Есть ли способ сделать поле MyInts пустым списком, отличным от -null, когда следующая строка десериализована?

string serialized = @"{""NeverNull"":null}";

MyDataObject myDataObject = JsonConvert.DeserializeObject<MyDataObject>(serialized);

Я использую Newtonsoft.Json

Причина, по которой я спрашиваю, заключается в том, что у меня есть довольно сложный json-запрос для анализа, он содержит вложенные списки объектов, и я хотел бы, чтобы код десериализации создавал эти объекты, чтобы я мог избежать множества проверок на null:

if (foo.bar != null)
{
    foreach (var bar in foo.bar)
    {
        if (bar.baz != null)
        {
            foreach (var baz in bar.baz)
            {
               ...
11
задан James Newton-King 13 November 2012 в 21:36
поделиться