c# webservice将json数据消化到类中
本文关键字:数据 webservice json | 更新日期: 2023-09-27 18:12:44
我遇到了一个麻烦,弄清楚如何设置我的web服务来消化json数据变量。我想在POST请求中发送数据并将其分配给类。
我的函数(见下文)类总是null OrderReprint所以我错过了一大步。如果有任何帮助就太好了。
public Boolean Test(OrderReprint oreprints)
{
Debug.WriteLine(OrderReprints.seq1);
Debug.WriteLine(OrderReprints.client);
Debug.WriteLine(OrderReprints.Filename);
Debug.WriteLine(OrderReprints.formcode);
Debug.WriteLine(OrderReprints.jobnum);
Debug.WriteLine(OrderReprints.userid);
Debug.WriteLine(OrderReprints.seq1);
return true;
}
我的界面是这样的
[OperationContract]
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "Test")]
Boolean Test(OrderReprint oreprints);
我的数据契约类是这样的
[DataContract]
public class OrderReprint
{
[DataMember]
public string Filename;
[DataMember]
public string seq1;
[DataMember]
public string jobnum;
[DataMember]
public string formcode;
[DataMember]
public string userid;
[DataMember]
public string client;
}
我的Ajax调用是这样的:
$.ajax({
beforeSend: function (xhrObj) {
xhrObj.setRequestHeader("Content-Type", "application/json");
xhrObj.setRequestHeader("Accept", "application/json");
},
type: "POST",
url: URL,
dataType: "text",
data: JSON.stringify(params),
}).then(function (data) {
if (data.results) {
/* (done something here*/
}
}).fail(function (e) {
errorAlert('Process Job', 'Error retriving job informaiton!');
});
我从OperationContract中删除了BodyStyle,它工作了!
BodyStyle = WebMessageBodyStyle.WrappedRequest
,
[OperationContract]
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "Test")]
bool Test(OrderReprint oreprints);
感谢大家的帮助