C’è un limite su quanto JSON può contenere?

Sto usando jquery, JSON e AJAX per un sistema di commenti. Sono curioso, c’è un limite di dimensioni su cosa puoi inviare / archiviare con JSON? Come se un utente digita una grande quantità e io lo mando attraverso JSON c’è una sorta di limite massimo?

Inoltre, è ansible inviare qualsiasi tipo di testo tramite JSON. per esempio a volte permetto agli utenti di usare html, sarà ok?

JSON è simile ad altri formati di dati come XML – se hai bisogno di trasmettere più dati, devi solo inviare più dati. Non c’è alcuna limitazione di dimensione inerente alla richiesta JSON. Eventuali limitazioni sarebbero impostate dal server che analizza la richiesta. (Ad esempio, ASP.NET ha la proprietà “MaxJsonLength” del serializzatore.)

Non esiste un limite fisso su quanto è grande un blocco dati JSON o uno qualsiasi dei campi.

Esistono limiti alla quantità di JSON che l’implementazione JavaScript dei vari browser può gestire (ad es. Circa 40 MB nella mia esperienza). Vedi questa domanda per esempio .

Dipende dall’implementazione del tuo writer / parser JSON. DataContractJsonSerializer di Microsoft sembra avere un limite rigido attorno a 8kb (penso che 8192), e verrà fuori errore per stringhe più grandi.

Modifica: siamo stati in grado di risolvere il limite di 8K per le stringhe JSON impostando la proprietà MaxJsonLength nella configurazione Web come descritto in questa risposta: https://stackoverflow.com/a/1151993/61569

Non c’è davvero alcun limite alla dimensione dei dati JSON da inviare o ricevere. Possiamo anche inviare dati Json nel file. In base alle funzionalità del browser con cui si sta lavorando, è ansible gestire i dati di Json.

Le implementazioni sono libere di impostare i limiti sui documenti JSON, inclusa la dimensione, quindi scegli saggiamente il tuo parser. Vedi RFC 7159 , Sezione 9. Analizzatori:

“Un’implementazione può porre dei limiti alle dimensioni dei testi che accetta, ma un’implementazione può porre dei limiti alla profondità massima di annidamento: un’implementazione può porre dei limiti all’intervallo e alla precisione dei numeri. Un’implementazione può porre dei limiti alla lunghezza e al carattere contenuto di stringhe. ”

Se si sta lavorando con ASP.NET MVC, è ansible risolvere il problema aggiungendo MaxJsonLength al risultato:

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