public static DataTable JsonStringToDataTable(string jsonString) { DataTable dt = new DataTable(); try { 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)) { ColumnsName.Add(ColumnsNameString); } } catch (Exception ex) { throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData)); } } break; // TODO: might not be correct. Was : Exit For } foreach (string AddColumnName in ColumnsName) { dt.Columns.Add(AddColumnName); } foreach (string jSA in jsonStringArray) { string[] RowData__1 = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ","); DataRow nr = dt.NewRow(); foreach (string rowData__2 in RowData__1) { try { int idx = rowData__2.IndexOf(":"); string RowColumns = rowData__2.Substring(0, idx - 1).Replace("\"", ""); string RowDataString = rowData__2.Substring(idx + 1).Replace("\"", ""); nr[RowColumns] = RowDataString; } catch (Exception ex) { } } dt.Rows.Add(nr); } return(dt); } catch { return(dt); } }
public DataTable JsonStringToDataTable(string jsonString) { DataTable dt = new DataTable(); string[] stringSeparators = new string[] { "\"INSTRUCTIONS\":" }; string[] jsonStringArray1 = jsonString.Split(stringSeparators, StringSplitOptions.None); string[] jsonStringArray = Regex.Split(jsonStringArray1[1].Replace("[", "").Replace("]", "").Replace("\r\n", ""), "},{"); List <string> ColumnsName = new List <string>(); foreach (string jSA in jsonStringArray) { //string[] jsonsplit = string[] jsonStringData = Regex.Split(jSA.Replace("{", "").Replace("}", "").Replace("\r\n", "").Replace("\t", "").Replace(" ", ""), ","); foreach (string ColumnsNameData in jsonStringData) { try { int idx = ColumnsNameData.IndexOf(":"); string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", ""); if (!ColumnsName.Contains(ColumnsNameString)) { 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); } foreach (string jSA in jsonStringArray) { string[] RowData = Regex.Split(jSA.Replace("{", "").Replace("}", "").Replace("\r\n", "").Replace("\t", "").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("\"", ""); nr[RowColumns] = RowDataString; } catch (Exception ex) { continue; } } dt.Rows.Add(nr); } return(dt); }
public DataTable JsonStringToDataTable(string jsonString) { //return Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(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("\"", ""); if (!ColumnsName.Contains(ColumnsNameString)) { 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); } 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("\"", ""); nr[RowColumns] = RowDataString; } catch (Exception ex) { continue; } } dt.Rows.Add(nr); } return(dt); }
public static DataTable JsonStringToDataTable(string jsonString) { //http://www.c-sharpcorner.com/blogs/convert-json-string-to-datatable-in-asp-net1 DataTable dt = new DataTable(); if (!string.IsNullOrEmpty(jsonString) && jsonString.ToLower() != "undefined") { jsonString = jsonString.Replace("}, {", "},{"); jsonString = CheckComa(jsonString); string[] jsonStringArray = System.Text.RegularExpressions.Regex.Split(jsonString.Replace("[", "").Replace("]", ""), "},{"); List <string> ColumnsName = new List <string>(); foreach (string jSA in jsonStringArray) { string[] jsonStringData = System.Text.RegularExpressions.Regex.Split(jSA.Replace("{", "").Replace("}", ""), ","); foreach (string ColumnsNameData in jsonStringData) { try { int idx = ColumnsNameData.IndexOf(":"); string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "").Trim(); if (!ColumnsName.Contains(ColumnsNameString)) { ColumnsName.Add(ColumnsNameString); } else { //if found more than one column with same name add the id to difference the column name ColumnsName.Add(ColumnsNameString + (ColumnsName.Count() - 1).ToString()); } } catch { throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData)); } } break; } foreach (string AddColumnName in ColumnsName) { dt.Columns.Add(AddColumnName); } foreach (string jSA in jsonStringArray) { string[] RowData = System.Text.RegularExpressions.Regex.Split(jSA.Replace("{", "").Replace("}", ""), ","); DataRow nr = dt.NewRow(); int columnNumber = 0; //reset index of the column per each element foreach (string rowData in RowData) { try { int idx = rowData.IndexOf(":"); string RowDataString = rowData.Substring(idx + 1).Replace("\"", "").Trim(); nr[columnNumber] = RowDataString; //because the columns always come in same order use the index not the name columnNumber++; } catch { 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); }
public DataTable JsonStringToDataTable(string jsonString) { DataTable dt = new DataTable(); 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[] 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)) { 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); } 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 != "null") { nr[RowColumns] = RowDataString; } else { nr[RowColumns] = null; } } catch (Exception ex) { continue; } } dt.Rows.Add(nr); } } return(dt); }
//get bulk products details through webapi public async Task <ActionResult> UploadExternalAPI(HttpPostedFileBase file) { DataTable _upcCSVCode = new DataTable(); string path = string.Empty; var fileName = string.Empty; var UPCCode = string.Empty; int _yes = 1; bool _isFirstRowHeader = Convert.ToBoolean(_yes); string _retrunProductDetail = string.Empty; ArrayList _upcCodeListForCSV = new ArrayList(); List <dynamic> _list = new List <dynamic>(); StringBuilder sb = new StringBuilder(); DataTable dt = new DataTable(); DataSet _productDataset = new DataSet(); if (file.ContentLength > 0) { fileName = Path.GetFileName(file.FileName); path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); file.SaveAs(path); _upcCSVCode = GetDataTableFromCsv(path, _isFirstRowHeader); if (_upcCSVCode.Rows.Count > 0) { for (int i = 0; i < _upcCSVCode.Rows.Count; i++) { UPCCode = _upcCSVCode.Rows[i][0].ToString(); if (UPCCode != null) { string _appKey = "/zDQJTHnn1dS"; string _authKey = "Yj83A3i3i5Kc8Wi6"; string _signature = GetDigitEyesVerificationCode(UPCCode, _authKey);//Third party eye method to get sample signature of particuler upc code string _url = "https://www.digit-eyes.com/gtin/v2_0/?upcCode=" + UPCCode + "&field_names=all&language=en&app_key=" + _appKey + "&signature=" + _signature + ""; string[] _jsonProductArray; using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient()) { client.BaseAddress = new Uri(_url); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); System.Net.Http.HttpResponseMessage response = await client.GetAsync(_url); if (response.IsSuccessStatusCode) { _retrunProductDetail = await response.Content.ReadAsStringAsync(); _jsonProductArray = Regex.Split(_retrunProductDetail.Replace(", gcp", ""), "},{"); string[] jsonStringArray = Regex.Split(_retrunProductDetail.Replace("[", "").Replace("]", "").Replace(", Inc.", " Inc."), "},{"); if (dt.Columns.Count <= 0) { 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)) { ColumnsName.Add(ColumnsNameString); } } catch (Exception ex) { throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData)); } } break; } foreach (string AddColumnName in ColumnsName) { var _columnName = Regex.Replace(AddColumnName, @"\s+", ""); if (dt.Columns.Contains(_columnName)) { dt.Columns.Add("gcp1"); } else { dt.Columns.Add(_columnName); } } dt.Rows.Add(JsonStringToDataTable(jsonStringArray, dt)); } else { dt.Rows.Add(JsonStringToDataTable(jsonStringArray, dt)); } } } } } string _convertProductetailsToCSV = ConvertToCSV(dt);//convert to csv file _saveProductsDetailCSVFile(_convertProductetailsToCSV.ToString()); string _retrunProductsDetail = JsonConvert.SerializeObject(_productDataset, Formatting.Indented); TempData["ProductDetailList"] = _retrunProductsDetail; return(RedirectToAction("UPCSearch")); } else { TempData["sErrMsg"] = "Please Add UPC Code in .csv file !"; } } else { return(RedirectToAction("UPCSearch")); } return(RedirectToAction("UPCSearch")); }