Ich verwende jquery, JSON und AJAX für ein Kommentarsystem. Ich bin neugierig, gibt es eine Größenbeschränkung für das, was Sie mit JSON senden / speichern können? Wenn ein Benutzer eine große Menge eingibt und ich sie über JSON sende, gibt es eine maximale Grenze?
Es kann auch jede Art von Text über JSON gesendet werden. Zum Beispiel erlaube ich Benutzern manchmal, HTML zu verwenden. Ist das in Ordnung?
connectionDidFinishLoading
Sie die JSON-Übersetzung dort implementieren (oder danach aufrufen ) und nicht indidReceiveData
(wo Sie die empfangenen Daten einfach mit dem vorherigen Datum verketten sollten) empfangen). Andere Umgebungen sind ähnlich.Antworten:
JSON ähnelt anderen Datenformaten wie XML. Wenn Sie mehr Daten übertragen müssen, senden Sie einfach mehr Daten. Es gibt keine inhärente Größenbeschränkung für die JSON-Anforderung. Jede Einschränkung wird vom Server festgelegt, der die Anforderung analysiert. (Beispielsweise verfügt ASP.NET über die Eigenschaft "MaxJsonLength" des Serializers.)
quelle
JavaScriptSerializer.MaxJsonLength
in Bernsteins Antwort erwähnte Eigenschaft . (NB ich habe aus MSDN zitiert )Es gibt keine feste Grenze für die Größe eines JSON-Datenblocks oder eines der Felder.
Es gibt Grenzen, wie viel JSON die JavaScript-Implementierung verschiedener Browser verarbeiten kann (z. B. nach meiner Erfahrung etwa 40 MB). Siehe diese Frage zum Beispiel .
quelle
Dies hängt von der Implementierung Ihres JSON-Writers / Parsers ab. Der DataContractJsonSerializer von Microsoft scheint ein hartes Limit von 8 KB (8192, glaube ich) zu haben, und bei größeren Zeichenfolgen tritt ein Fehler auf.
Bearbeiten: Wir konnten das 8K-Limit für JSON-Zeichenfolgen auflösen, indem wir die MaxJsonLength-Eigenschaft in der Webkonfiguration wie in dieser Antwort beschrieben festlegen: https://stackoverflow.com/a/1151993/61569
quelle
Die Größe der zu sendenden oder zu empfangenden JSON-Daten ist wirklich unbegrenzt. Wir können auch Json-Daten in einer Datei senden. Je nach den Funktionen des Browsers, mit dem Sie arbeiten, können Json-Daten verarbeitet werden.
quelle
Bei Implementierungen können Sie Beschränkungen für JSON-Dokumente festlegen, einschließlich der Größe. Wählen Sie Ihren Parser daher mit Bedacht aus. Siehe RFC 7159 , Abschnitt 9. Parser:
"Eine Implementierung kann Grenzen für die Größe der von ihr akzeptierten Texte festlegen. Eine Implementierung kann Grenzen für die maximale Verschachtelungstiefe festlegen. Eine Implementierung kann Grenzen für den Bereich und die Genauigkeit von Zahlen festlegen. Eine Implementierung kann Grenzen für die Länge und das Zeichen festlegen Inhalt von Zeichenfolgen. "
quelle
Wenn Sie mit ASP.NET MVC arbeiten, können Sie das Problem lösen, indem Sie Ihrem Ergebnis die MaxJsonLength hinzufügen :
quelle
int.MaxValue
wird es als "zu groß" abgelehnt - probieren Sie andere Größen aus und sehen Sie, wie groß Sie werden können.Sicherlich hat hier jeder einen Trick verpasst. Die aktuelle Dateigrößenbeschränkung einer JSON-Datei beträgt 18.446.744.073.709.551.616 Zeichen oder wenn Sie Bytes bevorzugen, oder sogar 2 ^ 64 Bytes, wenn Sie mindestens 64-Bit-Infrastrukturen betrachten.
In jeder Hinsicht können wir davon ausgehen, dass es unbegrenzt ist, da es Ihnen wahrscheinlich schwer fallen wird, dieses Problem zu lösen ...
quelle
Die maximale Länge von JSON-Zeichenfolgen. Der Standardwert beträgt 2097152 Zeichen, was 4 MB Unicode-Zeichenfolgendaten entspricht.
Siehe unten stehende URL
https://docs.microsoft.com/en-us/dotnet/api/system.web.script.serialization.javascriptserializer.maxjsonlength?view=netframework-4.7.2
quelle
JavaScriptSerializer
Klasse. UndMaxJsonLength
wurde bereits in anderen Antworten angesprochen.