【发布时间】:2023-04-02 08:51:01
【问题描述】:
我有一个 ASP.NET 项目,其中一些 AJAX 调用 web 方法,这将返回 JSON。
如果DataSet 有大约 100 行,则没有问题。但是有 1000 行,它会启动错误:
使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的大小超过了 maxJsonLength 属性中设置的值
[WebMethod(EnableSession = true)]
public static string PublicWebMethod()
{
DataSet ds = new DataSet(); // in the reality do a mountrous query
if (ds.Tables[0].Rows.Count > 0)
{
return JsonConvert.SerializeObject(clsUtil.ToArray(ds.Tables[0]));
}
else
{
return "false";
}
}
}
如何通过在方法中设置配置来解决这个问题?
我不想更改web.config
【问题讨论】:
-
可能不使用 DatSet 和 JsonConvert.Serialize,而是使用 DataReader 和 JsonTextWriter,这样您就可以以流方式编写 JSON。我知道,代码要多一点,但性能更高,内存要求也不那么重。
-
@AdamB 这是一个很好的解决方法。
标签: c# asp.net webmethod jsonconvert