Y a-t-il une limite à ce que peut contenir JSON?

j'utilise jquery, JSON, et AJAX pour un système de commentaire. Je suis curieux, y a-t-il une limite de taille sur ce que vous pouvez envoyer à travers/stocker avec JSON? Par exemple, si un utilisateur tape une grande quantité et que je l'envoie par JSON, y a-t-il une sorte de limite maximale?

peut aussi envoyer n'importe quel type de texte par JSON. par exemple, parfois, j'autorise les utilisateurs à utiliser html, est-ce que ce sera ok?

123
demandé sur scunliffe 2009-08-11 23:19:53

6 réponses

JSON est similaire à D'autres formats de données comme XML - si vous avez besoin de transmettre plus de données, vous envoyez juste plus de données. Il n'y a pas de limite de taille inhérente à la requête JSON. Toute limitation serait définie par le serveur qui analyse la requête. (Par exemple, ASP.NET possède la propriété" MaxJsonLength " du serializer.)

111
répondu Amber 2017-02-04 16:23:40

il n'y a pas de limite fixe à la taille d'un bloc de données JSON ni à aucun des champs.

il y a des limites à la quantité de JSON que l'implémentation JavaScript de divers navigateurs peut gérer (par exemple environ 40 Mo selon mon expérience). Voir cette question par exemple .

11
répondu cdiggins 2017-05-23 12:10:05

cela dépend de l'implémentation de votre JSON writer/parser. Le DataContractJsonSerializer de Microsoft semble avoir une limite dure autour de 8kb( 8192 je pense), et il va se tromper pour de plus grandes chaînes.

Edit: Nous avons pu résoudre la limite de 8K pour les chaînes JSON en définissant la propriété MaxJsonLength dans la configuration web comme décrit dans cette réponse: https://stackoverflow.com/a/1151993/61569

5
répondu Anthony F 2017-05-23 12:02:40

il n'y a vraiment aucune limite sur la taille des données JSON à envoyer ou à recevoir. Nous pouvons aussi envoyer des données Json dans le fichier. Selon les capacités du navigateur avec lequel vous travaillez, les données Json peuvent être manipulées.

4
répondu Chaitanya Belsare 2014-10-15 06:30:34

implémentations sont libres de fixer des limites sur les documents JSON, y compris la taille, donc choisissez votre analyseur sagement. Voir RFC 7159 , Section 9. Les analyseurs:

"Une mise en œuvre peut fixer des limites sur la taille des textes qu'il accepte. Une mise en œuvre peut fixer des limites à la profondeur maximale de nidification. Une mise en œuvre peut fixer des limites à la portée et à la précision des nombres. Une mise en œuvre peut fixer des limites à la longueur et au contenu des caractères des chaîne."

3
répondu stleary 2015-06-09 17:36:39

si vous travaillez avec ASP.NET MVC, vous pouvez résoudre le problème en ajoutant le MaxJsonLength à votre résultat:

var jsonResult = Json(new
{
    draw = param.Draw,
    recordsTotal = count,
    recordsFiltered = count,
    data = result
}, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
0
répondu mathias.horn 2018-03-22 14:35:19