using Newtonsoft.Json.Linq;
using System.Collections.Generic;
public static void Main()
var json = JObject.Parse(@"{
'fieldNameInAPI': 'fieldResp1',
'fieldPathInAPIResponse': 'response.obj.fieldResp1',
'fieldNameInCSV': 'column1'
'fieldNameInAPI': 'fieldResp2',
'fieldPathInAPIResponse': 'response.obj.fieldResp2',
'fieldNameInCSV': 'column2'
JToken data = json.SelectToken("$.response");
var dataTable = (DataTable)JsonConvert.DeserializeObject(json.SelectToken("$.response").ToString(), (typeof(DataTable)));
var lines = new List<string>();
string[] columnNames = dataTable.Columns.Cast<DataColumn>().
Select(column => column.ColumnName).
var header = string.Join(",", columnNames);
var valueLines = dataTable.AsEnumerable()
.Select(row => string.Join(",", row.ItemArray));
lines.AddRange(valueLines);
foreach(var line in lines)