using System.Collections.Generic;
public static void Main()
var options = new JsonSerializerOptions
var config = JsonSerializer.Deserialize<CacheConfig>(CONFIG_DATA, options);
Console.WriteLine($"Caching enabled: \n{config.Enabled}");
var serialized = JsonSerializer.Serialize(config, options);
Console.WriteLine($"JSON: \n{serialized}");
public class CacheConfig {
public bool Enabled {get;set;}
public List<CachedCall> CachedCalls {get;set;}
public class CachedCall {
public int Code {get;set;}
public string Description {get;set;}
public bool Enabled {get;set;}
public int Duration {get;set;}
public string CacheKey {get;set;}
public List<int> InvalidatedBy {get;set;}
const string CONFIG_DATA = @"
""Description"": ""ExchangeRates"",
""Description"": ""BankBranchList"",
""Description"": ""CustomerDetails"",
""CacheKey"": ""RimNumber"",
""InvalidatedBy"": [20200, 20201, 20202, 20203, 20110, 20501, 20502]
""Description"": ""CardListInquiry"",
""CacheKey"": ""SessionToken"",
""InvalidatedBy"": [100009, 100008, 100010]