使用 JSON JavaScriptSerializer 进行序列化或反序列化期间出错
本文关键字:反序列化 出错 序列化 JSON JavaScriptSerializer 使用 | 更新日期: 2023-09-27 18:30:31
在使用JSON JavaScriptSerializer进行序列化或反序列化期间出错。字符串的长度超过了在 maxJsonLength 属性上设置的值。
public string MemberDetail(string Code)
{
String res = "";
SortedList sd = new SortedList();
sd.Add("@mode", "MemberDetail");
sd.Add("@Code", Code);
SqlDataReader dr = erp.GetDataReaderSP("[Demo]", sd);
DataTable dt = new DataTable();
dt.Load(dr);
Synchr[] obj = new Synchr[dt.Rows.Count];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
obj[i].DemoName = Convert.ToInt32(dt.Rows[i]["Name"].ToString());
}
}
return new JavaScriptSerializer().Serialize(obj);
}
我假设它是您从中获取数据的Web服务(因为您的问题被标记为"Web-service"),请在web.config中更改maxlength:
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
或者你可以试试 JavaScriptSerializer 的 MaxJsonLength :
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
myObject obj = serializer.Deserialize<yourObject>(yourJsonString);