Dein API-Aufruf ist gerade mit JSONDecodeError: Expecting property name enclosed in double quotes gescheitert. Die Uhr tickt. Die Daten kamen von einem LLM, und irgendwo in jener 2.000-Token-Antwort hat ein einziges überflüssiges Komma am Ende deine gesamte Pipeline zerstört.
Stand Mai 2026 ist der schnellste Weg, fehlerhafte JSON-Dateien zu reparieren, der Einsatz automatisierter Bibliotheken wie json_repair (Python) oder jsonrepair (npm). Diese Werkzeuge wurden speziell entwickelt, um LLM-generierte Syntaxfehler sofort zu beheben. Bei manuellen Reparaturen sind die üblichen Verdächtigen Trailing-Kommas, einfache Anführungszeichen oder nicht in Anführungszeichen gesetzte Schlüssel – die drei häufigsten Verstöße gegen den RFC 8259-Standard.
Die schnellste Lösung: json_repair für LLM-Ausgaben
Standard-Parser wie Pythons json.loads() sind absichtlich streng. Ein einziges fehlerhaftes Zeichen löst eine JSONDecodeError aus und alles hält an. Das ist im Jahr 2026 ein alltägliches Problem, weil LLMs JSON routinely in Konversationstext einwickeln, Antworten mitten im Satz abbrechen oder Kommentare einstreuen, die die Spezifikation verletzen.
Die Bibliothek json_repair ist die Standardlösung. Laut GitHub verzeichnet dieses Projekt Stand 2026 über 4.700 Sterne. Sie funktioniert, indem sie die Absicht der Zeichenkette „errät“ – fehlende Klammern schließt, Anführungszeichen ergänzt und überflüssigen Text rund um den JSON-Block entfernt.

Python: Vorher und Nachher
Installation: pip install json-repair
Die fehlerhafte Eingabe:
import json_repair
bad_json = '{"user": "Alice", "status": tru'
decoded_object = json_repair.loads(bad_json)
Was hinter den Kulissen passierte: json_repair erkannte, dass tru wahrscheinlich true sein sollte, fügte die fehlende schließende Klammer hinzu und gab ein gültiges Python-Dictionary zurück. Ganz ohne manuelles Eingreifen.
Salvage-Modus: Wenn die Daten wirklich hässlich sind
Für schwierigere Fälle bietet json_repair (v0.59.5+) einen Salvage-Modus. Wie in der Projektdokumentation beschrieben, ist dieser Modus speziell für abgebrochene KI-Antworten oder beschädigte Logs gedacht. Er kann Arrays in Objekte umwandeln oder Einträge, die nicht mehr zu retten sind, verwerfen und so sicherstellen, dass die Ausgabe zu deinem Schema passt.
import json_repair
# Salvage mode for severely truncated data
result = json_repair.loads(
'{"items": [{"id": 1, "name": "Widget"}, {"id": 2, "na',
salvage_mode=True
)
# Result: {'items': [{'id': 1, 'name': 'Widget'}, {'id': 2}]}
# Dropped the incomplete 'na' but saved everything else
npm-Alternative
Für Node.js-Projekte erledigt die jsonrepair-CLI dieselbe Aufgabe:
# Fix a file in place
npx jsonrepair broken.json > fixed.json
# Fix a string in a script
const { jsonrepair } = require('jsonrepair');
const fixed = jsonrepair('{"name": "test",}');
Manuelles Debugging: Den Spezifikationsverletzer finden
Wenn Automatisierung nicht ausreicht, musst du genau ermitteln, an welcher Stelle die Datei gegen RFC 8259 verstößt. JSON ist weitaus weniger nachsichtig als YAML oder JavaScript. Wie das JSONParser Diagnostics Team erklärt: „Der Parser scheitert am ersten Zeichen, das er nicht deuten kann – und das ist häufig nur ein nachgelagertes Symptom eines Problems mehrere Zeilen zuvor.“
Die drei JSON-Killer
Killer 1: Trailing-Kommas
Laut DEV Community sind Trailing-Kommas die Ursache Nummer 1 für Parse-Fehler. In JavaScript sind sie in Ordnung, nach dem letzten Element in einem JSON-Array oder -Objekt sind sie jedoch illegal.
// BROKEN - trailing comma after "active"
{
"name": "Alice",
"status": "active",
}
// FIXED - no comma before closing brace
{
"name": "Alice",
"status": "active"
}
Killer 2: Einfache Anführungszeichen
JSON verlangt doppelte Anführungszeichen (") sowohl für Schlüssel als auch für Zeichenkettenwerte. Viele Python- und JavaScript-Entwickler verwenden versehentlich einfache Anführungszeichen ('). Wie TidyCode anmerkt, ist dies eine zwingend erforderliche Korrektur.
// BROKEN - single quotes
{'name': 'Alice'}
// FIXED - double quotes
{"name": "Alice"}
Killer 3: Nicht zitierte Schlüssel
In JavaScript darfst du { name: "Alice" } schreiben. In JSON benötigt jeder Schlüssel doppelte Anführungszeichen.
// BROKEN - unquoted key
{name: "Alice"}
// FIXED - quoted key
{"name": "Alice"}

Der „Unexpected Token“-Fehler
Wenn ein Validator „Unexpected Token“ meldet, bedeutet das, dass der Parser auf NaN, Infinity oder undefined gestoßen ist – JavaScript-Konstanten, die JSON nicht unterstützt. JSON erlaubt nur null, true, false und Zahlen.
// BROKEN - NaN is not valid JSON
{"score": NaN, "result": Infinity}
// FIXED - replace with null or valid values
{"score": null, "result": null}
Striktes Parsen vs. Reparatur-Parsing: Wann man was einsetzt
Der richtige Ansatz hängt davon ab, woher deine Daten stammen. Menschlich bearbeitete Konfigurationsdateien verdienen striktes Parsen, um den Autor zur Fehlerbehebung zu zwingen. Maschinell erzeugte Daten aus LLMs oder API-Logs benötigen reparaturbasiertes Parsing.
| Funktion |
Streng (json.loads) |
Reparatur (json_repair) |
| Trailing-Kommas |
Löst JSONDecodeError aus |
Automatisch entfernt |
| Einfache Anführungszeichen |
Scheitert |
In doppelte Anführungszeichen konvertiert |
| Abgebrochene Daten |
Scheitert |
Schließt offene Klammern/Anführungszeichen |
| Kommentare |
Scheitert |
Automatisch entfernt |
| Bestes Einsatzgebiet |
Menschlich bearbeitete Konfigurationsdateien |
LLM-Ausgaben, API-Logs |
Schema-geführte Reparaturen mit Pydantic
Du kannst den Reparaturprozess mit Pydantic v2 oder JSON Schema steuern. Wenn du json_repair ein Schema übergibt, macht das Werkzeug mehr als nur Syntax zu korrigieren – es kann Typen anpassen (eine Zeichenkette "1" in eine Zahl 1 umwandeln) und fehlende Pflichtfelder mit Standardwerten füllen.
from pydantic import BaseModel
import json_repair
class User(BaseModel):
id: int
name: str
active: bool = True
# Broken JSON with wrong types
raw = '{"id": "42", "name": "Alice"}'
repaired = json_repair.loads(raw)
# Validate against schema
user = User(**repaired)
# user.id is now int(42), user.active defaults to True
Wie Stefano Baccianella in seiner Projektzitation von 2025 anmerkte, ist dieser Ansatz genau auf jenes „großenteils korrekte, aber technisch ungültige“ JSON optimiert, das Sprachmodelle typischerweise erzeugen.
Mehrere Gigabyte große Dateien ohne Absturz verarbeiten
Einen 10-KB-Schnipsel zu reparieren ist einfach. Eine 2-GB-Datei zu reparieren erfordert eine Strategie, die nicht deinen gesamten Arbeitsspeicher auffrisst. Das Laden der kompletten Datei in den Speicher führt zu Out-of-Memory-Fehlern (OOM).
Strategie 1: Streaming mit ijson
Für riesige Datensätze verwende ijson, um die Daten stückweise zu verarbeiten. Wie Scrapfly erwähnt, verarbeitet ijson die Daten schrittweise. Kombiniere es mit einem Bereinigungsskript, das Probleme Zeile für Zeile vor dem Parsen behebt.
import ijson
# Stream through a large JSON file
with open('huge_broken.json', 'r') as f:
for item in ijson.items(f, 'records.item'):
# Process each item individually
process(item)
Strategie 2: CLI-Pipe für maximale Effizienz
Der speicherschonendste Ansatz für große Dateien ist die Nutzung der jsonrepair-CLI mit direkter Weiterleitung der Ausgabe in eine neue Datei:
# Streams repair, never loads full file into memory
jsonrepair large_broken.json > fixed.json
Das ist deutlich speichereffizienter, als die Datei in Python oder in einen Browser zu laden.
Fazit
Fehlerhaftes JSON zu reparieren ist dank KI-fähiger Bibliotheken wie json_repair längst keine Handarbeit mehr. Du musst zwar noch die RFC 8259-Grundlagen verstehen – keine Trailing-Kommas, keine einfachen Anführungszeichen, keine nicht zitierten Schlüssel –, doch bei Daten im großen Maßstab ist Automatisierung im Jahr 2026 der einzig praktikable Ansatz.
Der Ablauf ist einfach: Probiere zuerst eine Reparaturbibliothek. Scheitert das, verwende einen Validator, um den exakten Syntaxfehler einzugrenzen. So bleiben deine Anwendungen Laufen, selbst wenn die eingehenden Daten weniger als perfekt sind.
Häufige Fragen
Unterstützt JSON offiziell Kommentare oder einfache Anführungszeichen?
Nein. Der RFC-8259-Standard verbietet Kommentare strikt. Auch einfache Anführungszeichen sind ungültig – für Schlüssel und Zeichenketten sind ausschließlich doppelte Anführungszeichen erlaubt. Werkzeuge wie json_repair können jedoch Kommentare automatisch entfernen und Anführungszeichen konvertieren, sodass die Dateien von Standardbibliotheken geparst werden können.
Wie gehe ich mit sehr großen, fehlerhaften JSON-Dateien ohne Absturz um?
Verwende einen Streaming-Parser wie ijson, um die Daten in Chunks zu verarbeiten. Vermeide es, den gesamten fehlerhaften String in eine einzelne Variable zu laden. Für das schnellste Ergebnis nutze CLI-Reparaturwerkzeuge, die die Ausgabe direkt in eine neue Datei auf der Festplatte weiterleiten, ohne alles im Speicher zu halten.
Was ist der Unterschied zwischen fehlerhaftem und ungültigem JSON?
Fehlerhaftes (malformed) JSON verstößt gegen Syntaxregeln – fehlende Klammern, nicht zitierte Schlüssel, Trailing-Kommas – und lässt sich daher nicht parsen. Ungültiges (invalid) JSON hält alle Syntaxregeln ein, entspricht aber nicht einem bestimmten JSON-Schema (z. B. ist ein Feld eine Zeichenkette, obwohl das Schema eine Ganzzahl erwartet). Das Reparieren fehlerhaften JSON ist eine strukturelle Reparatur; das Beheben ungültigen JSON betrifft die Datenintegrität.
Kann ich json_repair zusammen mit der Pydantic-Validierung verwenden?
Ja. Rufe zuerst json_repair.loads() auf, um Syntaxfehler zu beheben, und übergib dann das reparierte Dictionary an dein Pydantic-Modell zur Typvalidierung und Schema-Erzwingung. Dieser zweistufige Ansatz behandelt sowohl strukturelle als auch semantische Probleme.
Was ist mit JSON im JavaScript-Stil mit Kommentaren?
Standard-JSON unterstützt keine Kommentare, doch json_repair kann //– und /* */-Kommentare automatisch entfernen. Wenn du Kommentare in deinen Konfigurationsdateien benötigst, solltest du das Format JSONC (JSON mit Kommentaren) und einen kompatiblen Parser wie json5 für Python verwenden.