Ошибка при сериализации или десериализации с использованием JSON JavaScriptSerializer.

Ошибка при сериализации или десериализации с использованием 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);
    }
+3
14 нояб. '14 в 8:54
источник поделиться
1 ответ

Я предполагаю, что это веб-служба, из которой вы получаете данные (по мере того как ваш вопрос помечен как "веб-сервис" ), измените maxlength в web.config:

<configuration> 
   <system.web.extensions>
       <scripting>
           <webServices>
               <jsonSerialization maxJsonLength="50000000"/>
           </webServices>
       </scripting>
   </system.web.extensions>
</configuration> 

Или вы можете попробовать MaxJsonLength JavaScriptSerializer:

JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue; 
myObject obj = serializer.Deserialize<yourObject>(yourJsonString);
+9
14 нояб. '14 в 9:01
источник

Посмотрите другие вопросы по меткам или Задайте вопрос