JSON可容纳的数量是否有限制?

时间:2009-08-11 19:19:53

标签: json

我正在使用jquery,JSON和AJAX作为评论系统。我很好奇,你可以通过JSON发送/存储的内容有大小限制吗?就像用户输入大量数据而我通过JSON发送它是否存在某种最大限制?

也可以通过JSON发送任何类型的文本。例如,有时我允许用户使用html,这可以吗?

9 个答案:

答案 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下方引用

https://docs.microsoft.com/en-us/dotnet/api/system.web.script.serialization.javascriptserializer.maxjsonlength?view=netframework-4.7.2