using System.Collections.Generic;
using Newtonsoft.Json.Linq;
public static void Main()
""acBalance"": ""100.25""
""bankName"": ""ABC Bank"",
""totalAmount"": ""150.50""
""bankName"": ""XYZ Bank"",
""totalAmount"": ""75.25""
""bankName"": ""BCD Bank"",
""totalAmount"": ""15.50""
var root = JsonConvert.DeserializeObject<RootObject>(json);
foreach (var bank in root.BankDetails)
Console.WriteLine(bank.BankName);
foreach (var account in bank.Accounts)
Console.WriteLine("Account " + account.AccountNumber + ": " + account.Balance);
Console.WriteLine("Total: " + bank.TotalAmount);
Console.WriteLine(new string('-', 25));
public List<Bank> BankDetails { get; set; }
[JsonConverter(typeof(BankConverter))]
public string BankName { get; set; }
public decimal TotalAmount { get; set; }
public List<Account> Accounts { get; set; }
public int SequenceNumber { get; set; }
public string AccountNumber { get; set; }
[JsonProperty("acBalance")]
public decimal Balance { get; set; }
class BankConverter : JsonConverter
public override bool CanConvert(Type objectType)
return objectType == typeof(Bank);
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
JObject obj = JObject.Load(reader);
serializer.Populate(obj.CreateReader(), bank);
bank.Accounts = obj[bank.BankName].ToObject<List<Account>>(serializer);
public override bool CanWrite
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();