WCF POST通过JQuery.如何在JSON中发送数组

本文关键字:JSON 数组 POST 通过 JQuery WCF | 更新日期: 2023-09-27 18:26:54

我想通过POST将JSON发送到使用JQuery的WCF服务。问题是,我真的不知道如何正确地发送这个带有对象数组的JSON,所以我得到了一个400错误的请求。

这就是JSON结构。正如您所看到的,有一些字段和一个文件数组(名称及其base64主体)。问题是最后一部分。

{
   "guid": "",
   "title": "d",
   "description": "d",
   "category": "19",
   "email": "emai@email.com",
   "priority": "1",
   "type": "2",
   "typeText": "Soli",
   "categoryText": "CU",
   "subCategoryText": "TMóvil",
   "files": [
      {
         "nameFile": "stack.txt",
         "fileContent": "data:text/plain;base64,Y2xvd24="
      }
   ]
}

这是发送JSON:的代码

    $.ajax({
        url: serviceUrl,
        type: "POST",
        data: JSON.stringify(params),
        async: true, 
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {.....
        error: function(data)....
})

这是我在服务器端的接口:

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "NewRequest", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
NewRequestResponse NewRequest(NewRequestTO obj);

这是NewRequestTO类

 [DataContract]
    public class NewRequestTO
    {
        [DataMember]
        public string guid { get; set; }
        [DataMember]
        public string title { get; set; }
        [DataMember]
        public string description { get; set; }
        [DataMember]
        public string category { get; set; }
        [DataMember]
        public string email { get; set; }
        [DataMember]
        public string priority { get; set; } 
        [DataMember]
        public string type { get; set; }
        [DataMember]
        public string typeText { get; set; }
        [DataMember]
        public string categoryText { get; set; }
        [DataMember]
        public string subCategoryText { get; set; }
        [DataMember]
        public string files { get; set; }
    }

问题是,我该如何处理这些信息?我必须使用什么结构?

提前谢谢。

WCF POST通过JQuery.如何在JSON中发送数组

这:

"files": [
      {
         "nameFile": "stack.txt",
         "fileContent": "data:text/plain;base64,Y2xvd24="
      }
   ]

将等效于对象的IEnumerable,其中对象具有名为File和fileContent的属性。

例如

[DataMember]
public FileData[] files { get; set; }
public class FileData {
   [DataMember]
   public string nameFile { get; set;}
   [DataMember]
   public string fileContent { get; set; }
}