Zum Inhalt springen
jsonbeautifiers
Deutsch
V8 Überprüft durch Ausführen des Parsers auf Node v24.15.0, V8 13.6.233.17.

Unexpected end of JSON input

Der Parser erreichte das Ende der Eingabe, während er noch mehr erwartete. Entweder war die Zeichenkette von vornherein leer, oder ein Wert blieb offen und das Dokument war abgeschnitten. Beachten Sie: Diese Meldung trägt keine Position - genau das unterscheidet sie von den Fehlern, die eine haben.

Fügen Sie Ihr JSON ein und sehen Sie genau, wo es bricht

Eingabe

Nichts, was Sie einfügen, verlässt Ihren Browser. Die connect-src Erlaubnisliste macht daraus eine Garantie des Browsers statt eines Versprechens. Selbst überprüfen

Was es tatsächlich auslöst

Sortiert danach, wie oft sich das jeweilige als die Antwort herausstellt.

  1. 01 Die Zeichenkette ist leer

    JSON.parse("") wirft das sofort. Eine leere Zeichenkette ist kein gültiges JSON. Das kommt meist von einem HTTP 204, von einer Antwort ohne Körper oder von einem localStorage-Schlüssel, der als leere Zeichenkette geschrieben wurde.

    Geht kaputt

    JSON.parse(localStorage.getItem('draft'))

    Funktioniert

    const raw = localStorage.getItem('draft');
    const draft = raw ? JSON.parse(raw) : null;
  2. 02 Der Antwortkörper wurde bereits verbraucht

    Der Körper eines Response lässt sich nur einmal lesen. res.text() und danach res.json() auf derselben Antwort aufzurufen liefert beim zweiten Mal eine leere Zeichenkette.

    Geht kaputt

    const text = await res.text();
    const data = await res.json();   // body already used

    Funktioniert

    const text = await res.text();
    const data = text ? JSON.parse(text) : null;
  3. 03 Das Dokument ist abgeschnitten

    Eine abgebrochene Verbindung, ein Limit für die Körpergröße (Express steht standardmäßig auf 100 kB), ein Stream-Lesevorgang, der zu früh endete, oder eine Datei, die während des Lesens geschrieben wurde. Endet die Eingabe mitten in einem Objekt, benennt unser Validator jede offen gebliebene Klammer und wo sie jeweils begann.

    Geht kaputt

    {"users": [{"id": 1}, {"id":

    Funktioniert

    {"users": [{"id": 1}, {"id": 2}]}
  4. 04 Der npm- oder yarn-Cache ist beschädigt

    Ein großer Teil der Suchanfragen nach dieser Zeichenkette betrifft npm und nicht Anwendungscode. Eine unvollständig geschriebene Cache-Datei erzeugt beim Installieren denselben Fehler. Führen Sie npm cache clean --force aus, löschen Sie node_modules und package-lock.json und installieren Sie erneut.

  5. 05 Sie haben das Ergebnis einer Funktion geparst, die nichts zurückgab

    JSON.parse(undefined) liefert eine andere Meldung ("undefined" is not valid JSON), aber eine Funktion, die eine leere Zeichenkette statt undefined zurückgibt, landet hier.

Derselbe Fehler in anderen Laufzeitumgebungen

Das zugrunde liegende Problem ist identisch; nur der Wortlaut unterscheidet sich. Meldet eine Kollegin eine dieser Zeilen, sieht sie genau dasselbe wie Sie.

Python Expecting value: line 1 column 1 (char 0)
Python, truncated object Expecting ',' delimiter: line 1 column 28 (char 27)

Häufige Fragen

Warum stehen in dieser Meldung keine Zeile und Spalte?
Weil es keine Position gibt, auf die man zeigen könnte. Der Fehler ist, dass die Eingabe zu Ende war, die schuldige Stelle ist also das Dokumentende. Unser Validator meldet das als Ende der Eingabe und listet auf, welche Klammern noch offen waren.
Wirft JSON.parse(null) diesen Fehler?
Nein. JSON.parse(null) wandelt null in die Zeichenkette "null" um und gibt null zurück, was viele überrascht. Es ist die leere Zeichenkette, die wirft.

Jetzt beheben

Fügen Sie das Payload in das Werkzeug oben ein, oder gehen Sie direkt zu dem, das für diesen Zweck gebaut wurde.

Die offene Klammer finden