using Newtonsoft.Json.Linq;
public class Configuration
public string InputFileFolder
public TransactionGroup[] TransactionGroups
public class TransactionGroup
public string FilterString
public object[] Arguments
public static void Main()
const string json = "{\r\n\"InputFileFolder\": \"D:\\\\MontlyTransactions\\\\\",\r\n\"TransactionGroups\":\r\n[\r\n {\r\n \"Name\": \"Income\", \r\n \"FilterString\": \"Type=@0 and Amount>@1 and (Description.Contains(@2) or Description.Contains(@3))\",\r\n \"Arguments\": [\"BAC\",0,\"REF1\",\"REF2\"]\r\n },\r\n {\r\n \"Name\": \"Household Bills\", \r\n \"FilterString\": \"Type=@0 and Amount<@1 and Amount.Contains(@2)\",\r\n \"Arguments\": [\"S/O\",0,[16600,72000,15000]]\r\n }\r\n]}";
var result = JsonConvert.DeserializeObject<Configuration>(json);
foreach (var tg in result.TransactionGroups)
for (var i = 0; i < tg.Arguments.Length; i++)
var arrArg = tg.Arguments[i];
if (arrArg is JArray realArr)
tg.Arguments[i] = realArr.ToObject<string[]>();
Console.WriteLine("Hello World");