无法使用 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; }
}
我从 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; }
}