【问题标题】:WCF POST via JQuery. How to send an array inside a JSON?WCF POST 通过 JQuery。如何在 JSON 中发送数组?
【发布时间】:2016-03-21 05:08:20
【问题描述】:

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

这是 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; }

    }

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

提前致谢。

【问题讨论】:

    标签: javascript c# jquery json wcf


    【解决方案1】:

    这个:

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

    将相当于一个 IEnumerable 对象,其中对象具有属性 nameFile 和 fileContent。

    例如

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 2011-11-16
      相关资源
      最近更新 更多