在C#中获取jsonResults.Data的长度

时间:2017-10-17 16:03:11

标签: c# json

我想检查jsonResults.Data(包含对象列表)的长度是否大于jsonResults.MaxJsonLength(我将其设置为int.MaxValue)以避免以下错误:"序列化或反序列化期间出错JSON JavaScriptSerializer。字符串的长度超过maxJsonLength属性上设置的值。"。

所以我认为我需要将列表转换为字符串,以获取字符数。

你知道怎么做?

(我不能使用Json.Net,因为它需要NuGet客户端版本' 2.12' +,但我的NuGet版本是' 2.8.60610.756'我不想要更新它。)

感谢。

1 个答案:

答案 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>