我想检查jsonResults.Data(包含对象列表)的长度是否大于jsonResults.MaxJsonLength(我将其设置为int.MaxValue)以避免以下错误:"序列化或反序列化期间出错JSON JavaScriptSerializer。字符串的长度超过maxJsonLength属性上设置的值。"。
所以我认为我需要将列表转换为字符串,以获取字符数。
你知道怎么做?
(我不能使用Json.Net,因为它需要NuGet客户端版本' 2.12' +,但我的NuGet版本是' 2.8.60610.756'我不想要更新它。)
感谢。
答案 0 :(得分:0)
您可以尝试序列化您的json并捕获可能的异常:
using System.Web.Script.Serialization;
public static bool IsJsonLengthValid(object myObj) {
try {
var jsonValue = new JavaScriptSerializer().Serialize(myObj);
} catch(InvalidOperationException e) {
return false;
}
return true;
}
如果MaxJsonLength
不够大,您可以使用以下方法增加其大小:
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>