using Newtonsoft.Json.Linq;
using System.Threading.Tasks;
public static void Main()
var json = "[\r\n {\r\n \"ParentEntityId\": \"9e166733-9198-4008-807d-e7518b10ea59\",\r\n \"Parent\": \"91115fe1-f6fd-4324-929b-cb3a64481559\",\r\n \"UUID\": \"0d1b204a-a415-4fee-af86-1102fa8125c5\",\r\n \"Payload\": \"{\\\"thirdpartyactivity\\\":\\\"Indirects\\\",\\\"thirdpartyquantity\\\":\\\"PortaDump\\\",\\\"thirdpartycompany\\\":\\\"PortaDump\\\",\\\"treeStatus\\\":\\\"collapsed\\\",\\\"thirdpartyticketnumber\\\":\\\"PortaDump\\\",\\\"thirdpartydescription\\\":\\\"2 Porta Potties\\\"}\",\r\n \"Type\": \"AddLEM\",\r\n \"TenantId\": null,\r\n \"TenantName\": null,\r\n \"CreatedBy\": \"ryanl@visur.one\",\r\n \"ModifiedBy\": \"ryanl@visur.one\",\r\n \"CreatedByUserId\": null,\r\n \"ModifiedByUserId\": null,\r\n \"EntityTimeZone\": \"America\\/Boise\",\r\n \"IsDeleted\": false,\r\n \"TableName\": \"lem_thirdparty\",\r\n \"ModifiedDateTime\": \"2020-09-15T17:13:32Z\",\r\n \"CreatedDateTime\": \"2020-09-15T17:13:32Z\",\r\n \"SyncDateTime\": \"2021-02-04T06:50:38.0294051Z\"\r\n },\r\n {\r\n \"ParentEntityId\": \"747fafb3-849b-488a-b415-06a39ebc10ce\",\r\n \"Parent\": \"58dd23bb-420f-4bb4-a726-081f948ec15f\",\r\n \"UUID\": \"1c4f1de7-547b-47c3-ac4d-a94450975a20\",\r\n \"Payload\": \"{\\\"thirdpartyactivity\\\":\\\"Welding\\\",\\\"thirdpartyquantity\\\":\\\"22\\\",\\\"treeStatus\\\":\\\"collapsed\\\",\\\"thirdpartyticketnumber\\\":\\\"2\\\"}\",\r\n \"Type\": \"AddLEM\",\r\n \"TenantId\": null,\r\n \"TenantName\": null,\r\n \"CreatedBy\": \"neetesh.s@it.net\",\r\n \"ModifiedBy\": \"neetesh.s@it.net\",\r\n \"CreatedByUserId\": null,\r\n \"ModifiedByUserId\": null,\r\n \"EntityTimeZone\": \"Asia\\/Calcutta\",\r\n \"IsDeleted\": false,\r\n \"TableName\": \"lem_thirdparty\",\r\n \"ModifiedDateTime\": \"2020-10-01T12:37:43Z\",\r\n \"CreatedDateTime\": \"2020-10-01T12:37:43Z\",\r\n \"SyncDateTime\": \"2021-02-04T06:50:38.0291466Z\"\r\n }\r\n]";
JArray jsonArray = JArray.Parse(json);
var result = TransformRecordsAsMultiValue(jsonArray,"testtable").GetAwaiter().GetResult();
public static string TokenToString(JToken token)
public static async Task<JArray> TransformRecordsAsMultiValue(JArray recordsArray, string tableName)
JArray result = new JArray();
if (recordsArray != null && recordsArray.Count() > 0)
JObject jobject = new JObject();
jobject.Add("Table", tableName);
JArray tempSchema = JArray.Parse(recordsArray.ToString().Replace("'", "''"));
var keys = tempSchema[0].ToObject<JObject>().Properties().Select(key => key.Name).ToList();
JArray valuesArray = new JArray();
foreach (var obj in tempSchema)
JArray valuesInnerArray = new JArray();
foreach (var key in keys)
valuesInnerArray.Add(obj[key]);
string val = $"({string.Join(",", valuesArray.Select(v => TokenToString(v)))})";
Console.WriteLine(valuesArray);