function tableToJson(activeTab) { var data = []; // first row needs to be headers var headers = []; var header_length = $('#grd_'+(activeTab+1)+' tbody th').length; for (var i = 0; i < header_length; i++) { var header_name = $('#grd_' + (activeTab + 1) + ' tbody th')[i].innerHTML; switch (header_name) { case "Your Type": headers[i] = "YourType"; break; case "Code": headers[i] = "YourCode"; break; case "Your Type": headers[i] = "YourType"; break; case "Your life": headers[i] = "YourLife"; break; case "Period": headers[i] = "YourPeriod"; break; case "Qualifying Cost": headers[i] = "OriginalCost"; break; case "B/F Cost": headers[i] = "Cost"; break; case "Rate%": headers[i] = "Rate%"; break; case "Your Amount": headers[i] = "YourRate"; break; case "Your Amount": headers[i] = "YourAmount"; break; case "Your Carrying Amount": headers[i] = "YourCarryingAmount"; break; case "Last Date": headers[i] = "YourGeneratedDate"; break; default: break; } } // go through cells var totalRowData_length = $('#grd_' + (activeTab + 1) + ' tbody tr').length; for (var i = 1; i < totalRowData_length; i++) { var tableRow = $('#grd_' + (activeTab + 1) + ' tbody tr')[i] var tableRow_length = $('#grd_' + (activeTab + 1) + ' tbody tr')[i].cells.length; var rowData = {}; for (var j = 0; j < tableRow_length; j++) { var dt = $('#grd_' + (activeTab + 1) + ' tbody tr')[i].cells[j].innerHTML; if (dt.indexOf('INPUT') != -1) { var mypattern = "value=\'?[0-9]*\.?[0-9]*\'?"; var myRegExp = new RegExp('(' + mypattern + ')', "g"); var result = dt.match(myRegExp); var length = result.length; if (result.length > 0) dt = result[0].replace("value=", ""); else dt = "0.00"; } rowData[headers[j]] = dt; } data.push(rowData); } return data; }
Is above valid Json ? How do I check whether it is valid?
After converted tables to Json array over clientside script, I got Invalid Json primitive error when passing the following code.
JavaScriptSerializer serializer = new JavaScriptSerializer(); List<ABC> lstABC = serializer.Deserialize<List<ABC>>("{"+((TextBox)Master.FindControl("txtABCString")).Text+"}");
What are the possible matter that can cause this problem. I had changed the header name to be exacted with ABC class. I am not sure what else could be the cause. There are date field in the class. Should I convert the date field to DateTime? But I do the conversion over client side..
After adding the "{" "}" I got the error below instead. What is it about really? what is the member name regarding to?
Invalid object passed in, member name expected. (1): {[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]}