============================================
DataTable [] dt;
string JsonString = string.Empty;
ConvertJsonStringToDataTable jDt = new ConvertJsonStringToDataTable();
JsonString = ui_lbl_JsonString.Text;
dt = jDt.JsonStringToDataTable(JsonString);
=================Logic======================
using System;
using System.Collections.Generic;
using System.Data;
using System.Text.RegularExpressions;
public class ConvertJsonStringToDataTable
{
public DataTable[] JsonStringToDataTable(string jsonString)
{
DataTable dt = new DataTable();
DataTable dt1 = new DataTable();
string[] jsonStringArray = Regex.Split(jsonString.Replace("[", "").Replace("]", ""), "},{");
List<string> ColumnsName = new List<string>();
foreach (string jSA in jsonStringArray)
{
string[] jsonStringData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
foreach (string ColumnsNameData in jsonStringData)
{
try
{
int idx = ColumnsNameData.IndexOf(":");
string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "");
if (!ColumnsName.Contains(ColumnsNameString))
{
if (!ColumnsName.Contains("\\"))
{
ColumnsName.Add(ColumnsNameString);
}
}
}
catch (Exception ex)
{
throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData));
}
}
break;
}
foreach (string AddColumnName in ColumnsName)
{
if (AddColumnName.Contains("\\"))
{
dt1.Columns.Add(AddColumnName.Replace("\\",""));
}
else
{
dt.Columns.Add(AddColumnName);
}
}
foreach (string jSA in jsonStringArray)
{
string[] RowData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
DataRow nr = dt.NewRow();
foreach (string rowData in RowData)
{
try
{
int idx = rowData.IndexOf(":");
string RowColumns = rowData.Substring(0, idx - 1).Replace("\"", "");
string RowDataString = rowData.Substring(idx + 1).Replace("\"", "");
if (!RowDataString.Contains("\\"))
{
nr[RowColumns] = RowDataString;
}
}
catch (Exception ex)
{
continue;
}
}
dt.Rows.Add(nr);
}
foreach (string jSA in jsonStringArray)
{
string[] RowData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
DataRow nr = dt1.NewRow();
foreach (string rowData in RowData)
{
try
{
int idx = rowData.IndexOf(":");
string RowColumns = rowData.Substring(0, idx - 1).Replace("\"", "");
string RowDataString = rowData.Substring(idx + 1).Replace("\"", "");
if (RowDataString.Contains("\\"))
{
nr[RowColumns.Replace("\\", "")] = RowDataString.Replace("\\", "");
}
}
catch (Exception ex)
{
continue;
}
}
dt1.Rows.Add(nr);
}
return new DataTable[] { dt, dt1 };
}
}
DataTable [] dt;
string JsonString = string.Empty;
ConvertJsonStringToDataTable jDt = new ConvertJsonStringToDataTable();
JsonString = ui_lbl_JsonString.Text;
dt = jDt.JsonStringToDataTable(JsonString);
=================Logic======================
using System;
using System.Collections.Generic;
using System.Data;
using System.Text.RegularExpressions;
public class ConvertJsonStringToDataTable
{
public DataTable[] JsonStringToDataTable(string jsonString)
{
DataTable dt = new DataTable();
DataTable dt1 = new DataTable();
string[] jsonStringArray = Regex.Split(jsonString.Replace("[", "").Replace("]", ""), "},{");
List<string> ColumnsName = new List<string>();
foreach (string jSA in jsonStringArray)
{
string[] jsonStringData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
foreach (string ColumnsNameData in jsonStringData)
{
try
{
int idx = ColumnsNameData.IndexOf(":");
string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "");
if (!ColumnsName.Contains(ColumnsNameString))
{
if (!ColumnsName.Contains("\\"))
{
ColumnsName.Add(ColumnsNameString);
}
}
}
catch (Exception ex)
{
throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData));
}
}
break;
}
foreach (string AddColumnName in ColumnsName)
{
if (AddColumnName.Contains("\\"))
{
dt1.Columns.Add(AddColumnName.Replace("\\",""));
}
else
{
dt.Columns.Add(AddColumnName);
}
}
foreach (string jSA in jsonStringArray)
{
string[] RowData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
DataRow nr = dt.NewRow();
foreach (string rowData in RowData)
{
try
{
int idx = rowData.IndexOf(":");
string RowColumns = rowData.Substring(0, idx - 1).Replace("\"", "");
string RowDataString = rowData.Substring(idx + 1).Replace("\"", "");
if (!RowDataString.Contains("\\"))
{
nr[RowColumns] = RowDataString;
}
}
catch (Exception ex)
{
continue;
}
}
dt.Rows.Add(nr);
}
foreach (string jSA in jsonStringArray)
{
string[] RowData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
DataRow nr = dt1.NewRow();
foreach (string rowData in RowData)
{
try
{
int idx = rowData.IndexOf(":");
string RowColumns = rowData.Substring(0, idx - 1).Replace("\"", "");
string RowDataString = rowData.Substring(idx + 1).Replace("\"", "");
if (RowDataString.Contains("\\"))
{
nr[RowColumns.Replace("\\", "")] = RowDataString.Replace("\\", "");
}
}
catch (Exception ex)
{
continue;
}
}
dt1.Rows.Add(nr);
}
return new DataTable[] { dt, dt1 };
}
}
No comments:
Post a Comment