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);
        }
Beispiel #2
0
        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);
        }