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!');
});

c# webservice将json数据消化到类中

我从OperationContract中删除了BodyStyle,它工作了!

BodyStyle = WebMessageBodyStyle.WrappedRequest

[OperationContract]
        [WebInvoke(Method = "POST",
             RequestFormat = WebMessageFormat.Json,
             ResponseFormat = WebMessageFormat.Json,
             UriTemplate = "Test")]
        bool Test(OrderReprint oreprints);

感谢大家的帮助