我正在使用jquery,JSON和AJAX作为评论系统。我很好奇,你可以通过JSON发送/存储的内容有大小限制吗?就像用户输入大量数据而我通过JSON发送它是否存在某种最大限制?
也可以通过JSON发送任何类型的文本。例如,有时我允许用户使用html,这可以吗?
答案 0 :(得分:121)
JSON类似于XML等其他数据格式 - 如果您需要传输更多数据,则只需发送更多数据。 JSON请求没有固有的大小限制。解析请求的服务器将设置任何限制。 (例如,ASP.NET具有序列化程序的“MaxJsonLength”属性。)
答案 1 :(得分:13)
对JSON数据块或任何字段的大小没有固定限制。
各种浏览器的JavaScript实现可以处理的JSON数量有限(例如,根据我的经验,大约40MB)。请参阅this question for example。
答案 2 :(得分:8)
这取决于您的JSON编写器/解析器的实现。微软的DataContractJsonSerializer似乎有一个大约8kb的硬限制(我认为是8192),对于更大的字符串,它会出错。
编辑: 我们能够通过在Web配置中设置MaxJsonLength属性来解决JSON字符串的8K限制,如本答案中所述:https://stackoverflow.com/a/1151993/61569
答案 3 :(得分:4)
要发送或接收的JSON数据的大小确实没有限制。我们也可以在文件中发送Json数据。根据您正在使用的浏览器的功能,可以处理Json数据。
答案 4 :(得分:4)
实现可以自由设置JSON文档的限制,包括大小,因此请明智地选择解析器。见RFC 7159,第9节。解析器:
"实现可能会对其接受的文本大小设置限制。实现可以设置最大嵌套深度的限制。实现可以对数字的范围和精度设置限制。实现可以对字符串的长度和字符内容设置限制。"
答案 5 :(得分:2)
当然每个人都错过了一个窍门。 json文件的当前文件大小限制为18,446,744,073,709,551,616个字符,或者如果您更喜欢字节,或者如果至少要查看64位基础结构,则甚至为2 ^ 64字节。
出于所有意图和目的,我们可以假定它是无限的,因为您可能很难解决这个问题...
答案 6 :(得分:0)
如果您正在使用ASP.NET MVC,可以通过在结果中添加 MaxJsonLength 来解决问题:
var jsonResult = Json(new
{
draw = param.Draw,
recordsTotal = count,
recordsFiltered = count,
data = result
}, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
答案 7 :(得分:0)
有什么要求?您是否尝试将大型 SQL 表作为 JSON 对象发送?我认为这不切实际。
如果你通过这个推动,你将消耗大量的服务器资源。 您也将无法使用进度条衡量进度,因为您的应用只会等待服务器回复,这需要很长时间。
我建议做的是将请求分成几批,比如前 1000 个,然后再次请求下一个 1000,直到你得到你需要的东西。 通过这种方式,您还可以放置一个不错的进度条来了解进度,因为提取大量数据可能真的需要很长时间。
答案 8 :(得分:-4)
JSON字符串的最大长度。默认值为2097152个字符,相当于4 MB的Unicode字符串数据。
在URL下方引用