How do I map JSON object to C# object ?
var Data = JSON.stringify({
FirstName: "sdfsdf",
LastName: "sdfsdf", Age: "sdfsdf", Descrp: "sdfsdf"
});
for example converting Data to C# class with same properties.
I tried this :
var Data = JSON.stringify({
FirstName: "sdfsdf",
LastName: "sdfsdf", Age: "sdfsdf", Descrp: "sdfsdf"
});
$.ajax({
type: "POST",
url: "Services/CRUD.asmx/CreatePerson",
data: Data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
}
});
but when I checked with firebug this error returned :
{"Message":"Invalid web service call, missing value for parameter: \u0027PersonObj\u0027.","StackTrace":" at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)\r\n at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)\r\n at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
You can definitely do that, but you need to make sure the client-side object matches your server-side class structure, property names, and parameter name exactly.
It sounds like your server-side method is expecting a
PersonObjparameter, but you aren’t structuring it that way on the client-side. Try something like this:I’ve written about doing this in-depth here: http://encosia.com/using-complex-types-to-make-calling-services-less-complex/