Есть ли ограничение на количество JSON? - PullRequest
140 голосов
/ 11 августа 2009

Я использую jquery, JSON и AJAX для системы комментариев. Мне любопытно, есть ли ограничение на размер того, что вы можете отправить через / сохранить с JSON? Например, если пользователь вводит большое количество, а я отправляю его через JSON, есть ли какое-то максимальное ограничение?

Также можно отправлять любой текст через JSON. например, когда-нибудь я разрешаю пользователям использовать html, это будет нормально?

Ответы [ 7 ]

123 голосов
/ 11 августа 2009

JSON похож на другие форматы данных, такие как XML - если вам нужно передать больше данных, вы просто отправляете больше данных. Для запроса JSON нет ограничений по размеру. Любое ограничение будет установлено сервером, анализирующим запрос. (Например, ASP.NET имеет свойство «MaxJsonLength» сериализатора.)

14 голосов
/ 17 октября 2012

Нет фиксированного ограничения на размер блока данных JSON или какого-либо из полей.

Существуют ограничения на то, сколько JSON может обрабатывать реализация JavaScript различных браузеров (например, около 40 МБ в моем опыте). См. этот вопрос, например .

8 голосов
/ 29 мая 2012

Это зависит от реализации вашего писателя / анализатора JSON. Microsoft DataContractJsonSerializer, кажется, имеет жесткое ограничение около 8 КБ (я думаю, что 8192), и оно выдает ошибку для больших строк.

Edit: Мы смогли разрешить ограничение 8K для строк JSON, установив свойство MaxJsonLength в веб-конфигурации, как описано в этом ответе: https://stackoverflow.com/a/1151993/61569

4 голосов
/ 09 июня 2015

Реализации могут свободно устанавливать ограничения на документы JSON, включая размер, поэтому выбирайте свой анализатор с умом. См. RFC 7159 , раздел 9. Парсеры:

"Реализация может устанавливать ограничения на размер текстов, которые она принимает. Реализация может устанавливать ограничения на максимальную глубину вложенности. Реализация может устанавливать ограничения на диапазон и точность чисел. Реализация может устанавливать ограничения на длина и символьное содержимое строк. "

4 голосов
/ 15 октября 2014

На самом деле нет никаких ограничений на размер данных JSON для отправки или получения. Мы также можем отправить данные Json в файл. В зависимости от возможностей браузера, с которым вы работаете, данные Json могут обрабатываться.

0 голосов
/ 08 апреля 2019

Максимальная длина строк JSON. По умолчанию используется 2097152 символа, что эквивалентно 4 МБ строковых данных Unicode.

См. Ниже URL

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

0 голосов
/ 22 марта 2018

Если вы работаете с ASP.NET MVC, вы можете решить эту проблему, добавив MaxJsonLength к вашему результату:

var jsonResult = Json(new
{
    draw = param.Draw,
    recordsTotal = count,
    recordsFiltered = count,
    data = result
}, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...