using System.Collections.Generic;
using Newtonsoft.Json.Linq;
public static void Main()
var recordFile = JsonConvert.DeserializeObject<RecordFile>(json);
foreach (var array in recordFile.Records)
foreach (var item in array)
Console.WriteLine(item.Name + " " + item.Dob);
[JsonConverter(typeof(RecordFileConverter))]
public string Page { get; set; }
public string Context { get; set; }
public int RecordCount { get; set; }
public List<Record[]> Records { get; set; }
public string Name { get; set; }
public string Dob { get; set; }
class RecordFileConverter : JsonConverter
public override bool CanConvert(Type objectType)
return (objectType == typeof(RecordFile));
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
JObject jo = JObject.Load(reader);
RecordFile rf = new RecordFile();
rf.Page = (string)jo["page"];
rf.Context = (string)jo["context"];
JObject records = (JObject)jo["records"];
rf.RecordCount = (int)records["rCount"];
rf.Records = records.Properties()
.Where(p => p.Name != "rCount")
.Select(p => p.Value.ToObject<Record[]>())
public override bool CanWrite
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();