【问题标题】:To return large number of records in json在 json 中返回大量记录
【发布时间】:2015-01-08 15:58:50
【问题描述】:

在下面的代码中,我得到了datatable 中的值并以jsonconvert 的形式返回,但这些值没有返回。有近3000条记录。如果有几条记录,它会返回。

[WebMethod]
    public static string GetDescriptions() 
    {
        string strLocation = "1";
        MastersClient objProductName = new MastersClient();

        DataSet Product = objProductName.GetLocationProductMap(int.Parse(strLocation));

        DataTable customerTable = Product.Tables[0];
        var serializer = new JavaScriptSerializer() { MaxJsonLength = 86753090 };

        return JsonConvert.SerializeObject(customerTable).ToString();
    }

【问题讨论】:

  • 你试过用JSON.NET代替JavaScriptSerializer吗?
  • 你到底有什么错误?

标签: jquery asp.net json


【解决方案1】:

确保响应不是太大。您可以在配置文件 (web.config) 中增加响应大小:

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

调整maxJsonLength 以满足您的需求,但请记住,太大的响应会导致用户等待更长的时间。

编辑:您可能还需要在 appSettings 下添加此键:

<add key="aspnet:MaxJsonDeserializerMembers" value="50000"/>

【讨论】:

    【解决方案2】:

    以下代码将帮助您...

            var serializer = new JavaScriptSerializer()
            serializer.MaxJsonLength = Int32.MaxValue
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      相关资源
      最近更新 更多