protected override bool OnArrayPropertyDetected(string propertyName, JsonReader reader) { if (propertyName == "items" || propertyName == "i") { Items.ReadJson(reader); return(true); } else { return(false); } }
protected override bool OnObjectItemDetected(JsonReader reader) { var x = Activator.CreateInstance <TDataItem>(); var jsonModel = x as JsonModel; if (jsonModel != null) { jsonModel.ReadJson(reader); } else { var emptyReader = new EmptyJson(); emptyReader.Accumulate = true; emptyReader.ReadJson(reader); x = (TDataItem)JsonConvert.DeserializeObject(emptyReader.JsonString, typeof(TDataItem)); } items.Add(x); return(true); }
protected override bool OnArrayPropertyDetected(string propertyName, JsonReader reader) { if (string.Compare(propertyName, "items", StringComparison.OrdinalIgnoreCase) == 0) { items = new List <TDataItem>(); if (typeof(TDataItem).IsBasicType()) { var x = new JsonArrayOfBasicType <TDataItem>(); x.ReadJson(reader); foreach (var item in x) { items.Add(item); } return(true); } else { if (typeof(TDataItem).IsJsonModel()) { var x = new JsonArrayOfObject <TDataItem>(); x.ReadJson(reader); foreach (var item in x) { items.Add(item); } return(true); } } } return(false); }