Существует ли ограничение на количество JSON?

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

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

Ответ 1

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

Ответ 2

Не существует фиксированного предела того, насколько большим является блок данных JSON или любое из полей.

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

Ответ 3

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

Изменить: Мы смогли разрешить ограничение 8K для строк JSON, установив свойство MaxJsonLength в веб-конфиге, как описано в этом ответе: fooobar.com/questions/14599/...

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

var jsonResult = Json(new
{
    draw = param.Draw,
    recordsTotal = count,
    recordsFiltered = count,
    data = result
}, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;

Ответ 7

  • JSON не может обрабатывать большие данные.

  • Не подходит для обработки различных мультимедийных форматов.

  • JSON не имеет функции поддержки "комментариев". Это может быть включено как дополнительный атрибут в одиночку.