using System.Collections;
using Newtonsoft.Json.Linq;
public static void Main()
{""FirstName"":""XYZ"",""LastName"":""SSS""},
{""FirstName"":""ABC"",""LastName"":""NNN""}
ParentCollection pCollection = Newtonsoft.Json.JsonConvert.DeserializeObject<ParentCollection>(json, new ParentCollectionConverter());
foreach (ChildDTO dto in pCollection)
Console.WriteLine(dto.FirstName + " " + dto.LastName);
public class ParentCollection : CollectionBase
public void Add(ChildDTO dto)
public string FirstName { get; set; }
public string LastName { get; set; }
class ParentCollectionConverter : JsonConverter
public override bool CanConvert(Type objectType)
return objectType == typeof(ParentCollection);
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
ParentCollection pc = new ParentCollection();
JArray array = JArray.Load(reader);
foreach (var item in array)
pc.Add(item.ToObject<ChildDTO>());
public override bool CanWrite
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();