c#
  • web-services
  • rest
  • wcf
  • wcf-rest
  • 2017-07-26 89 views 0 likes 
    0

    我有一個REST服務,它接受來自客戶端的JSON數據。我能夠使用.Net類從客戶端檢索JSON輸入。但我想以JSON字符串格式檢索數據,而不是作爲類對象。C#Rest服務 - 無法接收服務方法內的JSON請求

    這是我到目前爲止嘗試過的。

    輸入JSON

    <input id="Text3" type="text" value='{ "searchBy": "Pending Cases", "displayOptions": [ {"producers": "yes", "GA/BGA/Firm": "yes"}],"userId": "xxx", "userAuthToken": "0000" }' /></p> 
    

    呼叫服務通過javascript

    function CallService() 
        { 
         var inputJSON = $("#Text3").val(); 
         var endpointAddress = $("#Text1").val(); 
         var url = endpointAddress + $("#Text2").val(); 
    
         $.ajax({ 
          type: 'POST', 
          url: url, 
          contentType: 'application/json', 
          data: inputJSON, 
          success: function (result) {      
           $("#Text4").val(" " + JSON.stringify(result)); 
          } 
         }); 
    
        } 
    

    服務側 - 合同

    [OperationContract] 
        [WebInvoke(
         Method = "POST", 
         BodyStyle = WebMessageBodyStyle.Bare, 
         RequestFormat = WebMessageFormat.Json, 
         ResponseFormat = WebMessageFormat.Json)] 
        string SearchPredefined(PredefinedSearchRequestModel PredefinedSearchRequest); 
    

    實現服務方法的

    public string SearchPredefined(PredefinedSearchRequestModel PredefinedSearchRequest) 
        { 
         string outputStr = "PredefinedSearchRequest Object gets successfully populated here "; 
         return outputStr; 
        } 
    

    Model類

    [DataContract] 
    public class PredefinedSearchRequestModel 
    { 
        [DataMember] 
        public string searchBy { get; set; } 
    
        [DataMember] 
        public List<displayOptionsModelPredefined> displayOptions { get; set; } 
    
        [DataMember] 
        public string userId { get; set; } 
    
        [DataMember] 
        public string userAuthToken { get; set; } 
    
    } 
    
    [DataContract] 
    [Serializable] 
    public class displayOptionsModelPredefined 
    { 
        [DataMember] 
        public string producers { get; set; } 
    
        [DataMember(Name="GA/BGA/Firm")] 
        public string firm { get; set; } 
    } 
    

    迄今爲止,這些代碼工作正常。當客戶使用JSON數據調用我的服務時,服務方法被擊中並且模型對象被成功填充。

    但是我需要從我的服務調用另一個第三方服務與相同的JSON字符串。這就是爲什麼我需要原始JSON /字符串格式的輸入數據,而不是C#對象。

    如何獲取服務器端的數據作爲JSON字符串?

    回答

    0

    我建議採用序列NewtonSoft在SearchPredefined目的和傳遞結果通過:

    var serializedObject = Newtonsoft.Json.JsonConvert.SerializeObject<PredefinedSearchRequestModel>(PredefinedSearchRequest); 
    
    相關問題