在json中返回大量记录

时间:2015-01-08 15:58:50

标签: jquery asp.net json

在下面的代码中,我获取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();
    }

2 个答案:

答案 0 :(得分: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"/>

答案 1 :(得分:0)

下面的代码将有助于你...

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