无法使用 JavaScriptSerializer 反序列化 json 字符串

Cant Deserialize json string with JavaScriptSerializer

我从 javascript 向网络方法发送了以下内容:

            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[]

这是我的 class:

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

有什么问题吗?

按如下方式使用 C# class:

[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; }
}