public DataTable JsonStringToDataTable(string jsonString) { DataTable dt = 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("\"", "").Replace("\\", ""); if (!ColumnsName.Contains(ColumnsNameString)) { string s = ColumnsNameString.Replace("\"", ""); ColumnsName.Add(ColumnsNameString); } } catch (Exception ex) { throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData)); } } break; } foreach (string AddColumnName in ColumnsName) { dt.Columns.Add(AddColumnName.Replace("\"", "").Replace("\\", "")); } 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("\"", "").Replace("\\", ""); string RowDataString = rowData.Substring(idx + 1).Replace("\"", "").Replace("\\", ""); nr[RowColumns] = RowDataString.Replace("\"", "").Replace("\\", ""); } catch (Exception ex) { continue; } } dt.Rows.Add(nr); } return(dt); }
public DataTable JsonStringToDataTable(string jsonString) { DataTable dt = new DataTable(); string sFuncName = string.Empty; try { sFuncName = "JsonStringToDataTable()"; oLog.WriteToDebugLogFile("Starting Function ", sFuncName); string[] jsonStringArray = Regex.Split(jsonString.Replace("[", "").Replace("]", ""), "},{"); if (jsonStringArray[0].ToString() != string.Empty) { List <string> ColumnsName = new List <string>(); foreach (string jSA in jsonStringArray) { string sjSA = jSA; if (jSA.Contains("base64,")) { sjSA = jSA.Replace("base64,", "base64;"); } string[] jsonStringData = Regex.Split(sjSA.Replace("{", "").Replace("}", ""), "\","); foreach (string ColumnsNameData in jsonStringData) { try { int idx = ColumnsNameData.IndexOf(":"); string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", ""); if (!ColumnsName.Contains(ColumnsNameString.Trim())) { ColumnsName.Add(ColumnsNameString.Trim()); } } catch (Exception ex) { throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData)); } } break; } foreach (string AddColumnName in ColumnsName) { if (AddColumnName.Contains("Date")) { dt.Columns.Add(AddColumnName, typeof(DateTime)); } else { dt.Columns.Add(AddColumnName); } } foreach (string jSA in jsonStringArray) { string sjSA = jSA; if (jSA.Contains("base64,")) { sjSA = jSA.Replace("base64,", "base64;"); } string[] RowData = Regex.Split(sjSA.Replace("{", "").Replace("}", ""), "\","); DataRow nr = dt.NewRow(); foreach (string rowData in RowData) { try { string RowDataString = string.Empty; int idx = rowData.Trim().IndexOf(":"); string RowColumns = rowData.Trim().Substring(0, idx - 1).Replace("\"", ""); if (rowData.Trim().Substring(idx + 1).Replace("\"", "").Contains("base64;")) { RowDataString = rowData.Trim().Substring(idx + 1).Replace("\"", "").Replace("base64;", "base64,"); } else { RowDataString = rowData.Trim().Substring(idx + 1).Replace("\"", ""); } nr[RowColumns] = RowDataString.Trim(); } catch (Exception ex) { continue; } } dt.Rows.Add(nr); } } } catch (Exception ex) { sErrDesc = ex.Message.ToString(); oLog.WriteToErrorLogFile(sErrDesc, sFuncName); oLog.WriteToDebugLogFile("Completed With ERROR ", sFuncName); } return(dt); }