Existe um limite em quanto JSON pode suportar?

Eu estou usando jquery, JSON e AJAX para um sistema de comentários. Estou curioso, existe um limite de tamanho para o que você pode enviar através de / store com JSON? Como se um usuário digitasse uma grande quantidade e eu a enviasse através do JSON, existe algum tipo de limite máximo?

Também pode ser enviado qualquer tipo de texto através de JSON. por exemplo, em algum momento eu permito que os usuários usem html, isso será ok?

   

O JSON é semelhante a outros formatos de dados, como XML – se você precisar transmitir mais dados, basta enviar mais dados. Não há limitação de tamanho inerente à solicitação JSON. Qualquer limitação seria definida pelo servidor analisando a solicitação. (Por exemplo, o ASP.NET tem a propriedade “MaxJsonLength” do serializador.)

Não há limite fixo para o tamanho de um bloco de dados JSON ou de qualquer um dos campos.

Existem limites para o quanto JSON a implementação JavaScript de vários navegadores pode manipular (por exemplo, cerca de 40MB na minha experiência). Veja esta questão por exemplo .

Depende da implementação do seu gravador / analisador JSON. O DataContractJsonSerializer da Microsoft parece ter um limite rígido em torno de 8kb (8192, eu acho), e irá gerar erros para strings maiores.

Edit: Conseguimos resolver o limite de 8K para strings JSON configurando a propriedade MaxJsonLength na configuração da web, conforme descrito nesta resposta: https://stackoverflow.com/a/1151993/61569

Não há realmente nenhum limite no tamanho dos dados JSON a serem enviados ou recebidos. Também podemos enviar dados do Json no arquivo. De acordo com os resources do navegador com o qual você está trabalhando, os dados do Json podem ser manipulados.

As implementações são gratuitas para definir limites em documentos JSON, incluindo o tamanho, portanto escolha sabiamente seu analisador. Veja RFC 7159 , Seção 9. Parsers:

“Uma implementação pode definir limites no tamanho dos textos que ele aceita. Uma implementação pode definir limites na profundidade máxima de aninhamento. Uma implementação pode definir limites no intervalo e precisão dos números. Uma implementação pode definir limites no comprimento e caractere conteúdo de cordas “.

Se você estiver trabalhando com o ASP.NET MVC, poderá resolver o problema adicionando o MaxJsonLength ao seu resultado:

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