我将jquery,JSON和AJAX用于注释系统。我很好奇,可以通过JSON发送/存储的内容是否有大小限制?就像用户输入大量内容并通过JSON发送一样,是否存在某种最大限制?
也可以通过JSON发送任何类型的文本。例如,有时我允许用户使用html,这样可以吗?
connectionDidFinishLoading
此处(或在调用之后)而不是在didReceiveData
其中实现和执行JSON转换(您应该在其中简单地将接收到的数据与先前的日期连接起来)收到)。其他环境类似。
我将jquery,JSON和AJAX用于注释系统。我很好奇,可以通过JSON发送/存储的内容是否有大小限制?就像用户输入大量内容并通过JSON发送一样,是否存在某种最大限制?
也可以通过JSON发送任何类型的文本。例如,有时我允许用户使用html,这样可以吗?
connectionDidFinishLoading
此处(或在调用之后)而不是在didReceiveData
其中实现和执行JSON转换(您应该在其中简单地将接收到的数据与先前的日期连接起来)收到)。其他环境类似。
Answers:
JSON与其他数据格式(如XML)相似-如果您需要传输更多数据,则只需发送更多数据。JSON请求没有固有的大小限制。服务器将通过解析请求来设置任何限制。(例如,ASP.NET具有序列化程序的“ MaxJsonLength”属性。)
JavaScriptSerializer.MaxJsonLength
,Amber答案中提到的属性的“默认值为2097152个字符,相当于4 MB的Unicode字符串数据” 。(请注意,我已经引用了MSDN的内容)
这取决于您的JSON编写器/解析器的实现。微软的DataContractJsonSerializer似乎有一个大约8kb的硬限制(我认为是8192),并且对于较大的字符串它会出错。
编辑:我们能够通过在Web配置中设置MaxJsonLength属性来解决JSON字符串的8K限制,如此答案中所述:https ://stackoverflow.com/a/1151993/61569
如果使用的是ASP.NET MVC,则可以通过在结果中添加MaxJsonLength来解决问题:
var jsonResult = Json(new
{
draw = param.Draw,
recordsTotal = count,
recordsFiltered = count,
data = result
}, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
int.MaxValue
因为“太大”而被拒绝-尝试其他尺寸,然后看看可以得到多大。
JSON字符串的最大长度。默认值为2097152个字符,相当于4 MB的Unicode字符串数据。
请参阅下面的URL
JavaScriptSerializer
类。并且MaxJsonLength
已经在其他答案中得到了解决。