在Asp.net中将大于2MiB的对象序列化为Json

本文关键字:对象 序列化 Json 2MiB 大于 Asp net | 更新日期: 2023-09-27 17:52:15

我们目前正在进行性能测试,以确定Kendo UI是否足够快,以满足我们的需求。为此,我们需要在一个大型数据库(~150列和~100,000行)中执行测试。

Kendo UI Grid应该使用ajax调用读取

表行,它将数据作为json字符串返回。对于我们的测试数据(3-10个字符的随机字符串),每个请求最多可处理700个结果行。更多,我们点击maxJsonLength,它已经设置为Int32.Max-3

我们没有计划每页显示那么多行,但是可能会有二进制数据附加到行。这个数据,即使有20行,也很容易超过2 MiB的限制,因为必须使用Int32来设置最大大小。

那么是否有任何方法序列化长度大于2M的对象?

在Asp.net中将大于2MiB的对象序列化为Json

JSON并不是为传输大型二进制数据而设计的。如果你想让你的UI快速而简洁,你应该尝试将较大的对象分成较小的对象,并从json.

中删除二进制内容。

例如,你可以重构json的内容,只携带到二进制资源的链接。如果该二进制资源实际上是屏幕上需要的,则可以执行单独的请求。事实上,你可以并行执行请求:例如,加载json并显示内容。用二进制数据加载第一个N项并显示它。不要加载其余部分,因为它会减慢页面渲染时间。

我们现在使用来自http://www.newtonsoft.com的Json库来序列化对象。它不受web.config设置的约束,可以处理无限长度的Json请求。