2015-12-15 52 views
1

我想通過POST將JSON發送到使用JQuery的WCF服務。問題是我真的不知道如何正確發送這個JSON與一個對象數組,所以我得到一個400錯誤的請求。通過JQuery進行WCF POST。如何在JSON中發送數組?

這是JSON結構。正如你所看到的,有一些字段和一系列文件(名稱及其base64正文)。問題是最後一部分。

{ 
   "guid": "", 
   "title": "d", 
   "description": "d", 
   "category": "19", 
   "email": "[email protected]", 
   "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; } 

    } 

問題是,我該如何處理t他的信息?我必須使用什麼結構?

在此先感謝。

回答

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; } 
} 
+0

非常感謝您的幫助。有用! –