gpt4 book ai didi

asp.net - 将 JSON 对象转换为 C# 对象

转载 作者:行者123 更新时间:2023-12-01 06:39:37 27 4
gpt4 key购买 nike

如何将 JSON 对象映射到 C# 对象?

  var Data = JSON.stringify({
FirstName: "sdfsdf",
LastName: "sdfsdf", Age: "sdfsdf", Descrp: "sdfsdf"
});

例如将 Data 转换为具有相同属性的 C# 类。
我试过这个:

 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);

}
});

但是当我用 firebug 检查时返回了这个错误:

{"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"}

最佳答案

您绝对可以这样做,但您需要确保客户端对象与您的服务器端类结构、属性名称和参数名称完全匹配。

听起来您的服务器端方法需要一个 PersonObj 参数,但您并没有在客户端以这种方式构造它。尝试这样的事情:

var Data = JSON.stringify({ 
PersonObj: {
FirstName: 'foo',
LastName: 'bar',
Age: 99,
Descrp: 'foo person'
}
});

我在这里写过有关深入执行此操作的文章:http://encosia.com/using-complex-types-to-make-calling-services-less-complex/

关于asp.net - 将 JSON 对象转换为 C# 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6834957/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com