On my asp.net web application I am using a function to convert Json String to Data Table.Function throughs an error while dealing data with a comma(,) in it.
I got the error from : string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "");
This is the C# Function I am using:
public class ConvertJsonStringToDataTable
{
public DataTable JsonStringToDataTable(string jsonString)
{
DataTable dt = new DataTable();
if (jsonString != "[]" && jsonString != "undefined")
{
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)
{
if (ColumnsNameData != "")
{
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;
}
return dt;
}
}
A portion of Jquery Function
var IdentificationMark = $("[id*=txtIdentificationMark]").val();
var Remarks = $("[id*=txtRemarks]").val();
var dataCustMaster = { IdentificationMark: IdentificationMark, Remarks: Remarks };
var DataCustMaster = (JSON.stringify(dataCustMaster));
if (hasError == false) {
$.ajax({
type: "POST",
url: "CustomerCreation.aspx/InsertDetails",
data: "{'dataAuthOper':'" + AuthOperData + "','dataAdds':'" + AddsData + "','dataId':'" + IdData + "','dataCustMaster':'" + DataCustMaster + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
function OnSuccess(response, userContext, methodName) {
location.reload(true);
alert("Saved");
}
}
How can I get data with comma(,) ? How can I solve this issue ?? what are the changes I needed to make ??
Help me please,I am a beginner..
