2015-02-12 67 views
1

從JavaScript我發送到的webmethod以下:廣東話反序列化JSON字符串與JavaScriptSerializer

  var firstname = $("#txtfirstname").val(); 
      var lastname = $("#txtlastname").val(); 

      var dataFilter = { "filterType": "fn_ln", "data": { "firstName": firstname, "lastName": lastname } } 
      var data = JSON.stringify(dataFilter) 
      data = data.replace(/\"/g, '\''); 
      datatoSend = '{ filters:"' + data + '" }'; 

我使用data.replace(/\"/g, '\'');所以的webmethod可以接受數據(不,我從的webmethod得到一個錯誤500)

一旦進入網絡方法我收到

"{'filterType':'fn_ln','data':{'firstName':' aa','lastName':' bb'}}" 

作爲參數。然後用C#,當我嘗試。

JavaScriptSerializer sr = new JavaScriptSerializer(); 
srFilterData filterin = sr.Deserialize<srFilterData>(filters); 

我得到一個錯誤,說No parameterless constructor defined for type of 'System.String[]

這是我的課:

[Serializable] 
    public class srFilterData 
    { 
     public String filterType { get; set; } 
     public String data { get; set; } 
    } 

請告訴我這個問題?

回答

1

使用你的C#類,如下所示:

[Serializable] 
public class srFilterData 
{ 
    public String filterType { get; set; } 
    public UserData data { get; set; } 
} 


[Serializable] 
public class UserData 
{ 
    public String firstName { get; set; } 
    public String lastName { get; set; } 
} 
相關問題