JSON repareren
Gratis online tool om JSON te repareren. Detecteert en corrigeert automatisch achterste komma's, enkele aanhalingstekens, sleutels zonder aanhalingstekens, niet-gesloten haakjes, opmerkingen en Markdown-wrappers. Ontworpen voor AI-output opschonen en herstel van afgekapte JSON. Volledig lokaal in de browser.
Gerelateerde aanbevelingen
Wat is JSON repareren (JSON Repair)?
JSON repareren (JSON Repair) is het proces waarbij een niet-standaard JSON-tekst die een strikte JSON-parser niet kan verwerken vanwege syntaxfouten, automatisch wordt hersteld tot een geldige JSON-string die voldoet aan RFC 8259. In tegenstelling tot de JSON Formatter (Beautify), behandelt JSON Repair geen formaatverschillen maar structurele fouten: achterste komma's, enkele aanhalingstekens, ontbrekende aanhalingstekens, niet-gesloten haakjes, Markdown-wrappers, opmerkingen - al deze zorgen ervoor dat JSON.parse() een SyntaxError gooit, hoewel ze in de echte ontwikkelwereld uiterst gebruikelijk zijn.
De bronnen van 'niet-standaard' JSON in echte engineering-projecten zijn sterk geconcentreerd: ① Bij het kopiëren van LLM's zoals ChatGPT / Claude / Gemini is de output vaak verpakt in Markdown-codeblokken (```json ... ```) of vergezeld van verklarende tekst; ② Bij het kopiëren vanuit console.log() van een JavaScript-object kunnen achterste komma's en enkele aanhalingstekens meekomen; ③ Configuratiebestanden gebruiken vaak de uitgebreide JSON5 / JSONC-syntaxis (die opmerkingen, sleutels zonder aanhalingstekens, multi-regel strings, etc. toestaat); ④ Streaming-responses of afgekapte logs kunnen JSON halverwege de stroom afbreken, waarbij de afsluitende `}` of `"` ontbreekt. Een JSON Repair-tool scant de invoertekst, identificeert deze typische problemen en herstelt de inhoud naar standaard JSON volgens het 'minimale intrusie'-principe, waarbij de oorspronkelijke datasemantiek zoveel mogelijk behouden blijft.
Op implementatieniveau bestaat JSON Repair doorgaans uit twee fasen: ① Tolerant parse - het gebruik van een scanner op basis van een toestandsmachine in plaats van regex-matching om de karakterstroom stap voor stap te verwerken, waarbij syntaxtekens 'binnen strings' worden onderscheiden van 'buiten strings'; ② Canonical output - het resultaat opnieuw genereren met `JSON.parse` + `JSON.stringify`, zodat de output 100% geldig is voor elke downstream strikte parser. De JSON Repair-tool van GeekFormat voltooit de gehele reparatiestroom lokaal in de browser, zonder de oorspronkelijke inhoud naar een server te sturen, geschikt voor het verwerken van gevoelige API-responses, interne configuratiebestanden en AI-modeloutput.
Toepassingsgevallen
- AI/LLM-output opschonen: met één klik Markdown-verpakte, met verklarende tekst en achterste komma's verfraaide JSON van ChatGPT/Claude converteren naar standaard JSON
- Interface debugging en troubleshooting: wanneer API-responses worden afgekapt door gateway- of netwerkproblemen, snel haakjes en strings aanvullen om de oorspronkelijke datastructuur te lokaliseren
- Van de console gekopieerde JavaScript-objectliterals: one-stop-oplossing voor enkele aanhalingstekens, achterste komma's en sleutels zonder aanhalingstekens
- Configuratiebestand opschonen: opmerkingen uit JSON5/JSONC verwijderen om standaard JSON te verkrijgen, klaar voor geünificeerde downstream-consumptie
- Log- en klembordgegevens reparatie: snel JSON-fragmenten met opmerkingen, speciale witruimte of afkapping standaardiseren
- Gegevensmigratie en script-voorverwerking: voeg een reparatiestap toe in de gegevensmigratie-pijplijn om te voorkomen dat weinig ongeldige JSON's een hele ETL-batch blokkeren
Hoe te gebruiken
- Plak de foutieve, in Markdown verpakte of afgekapte JSON-inhoud in het linker invoerveld, of klik op 'Voorbeeld' om een typisch kapot JSON te laden, of upload een .json/.txt-bestand
- De tool detecteert en repareert automatisch veelvoorkomende syntaxproblemen; het rechter uitvoergebied toont de geformatteerde standaard JSON en de telling van elke gerepareerde probleemklasse
- Als er nog rode foutmeldingen zijn, kunt u de invoer handmatig bewerken en de reparatie opnieuw activeren (Mac: ⌘+Shift+R, Windows: Ctrl+Shift+R)
- Nadat u de structuur hebt bevestigd, klikt u op 'Kopiëren' om het gerepareerde resultaat op het klembord te plaatsen, of op 'Downloaden' om het op te slaan als repaired.json voor verdere formattering, validatie, etc.
Functies
- Dekt 7 veelvoorkomende syntaxfouten: achterste komma's, enkele aanhalingstekens, sleutels zonder aanhalingstekens, niet-gesloten strings, opmerkingen, ontbrekende haakjes, Markdown-codeblok-wrappers
- Geoptimaliseerd voor AI-output opschonen: verwijdert automatisch ```json wrappers en omringende verklarende tekst; herkent typische output van ChatGPT, Claude, Gemini en andere LLM's
- JSON5/JSONC compatibel: parseert uitgebreide syntaxis inclusief opmerkingen, losse aanhalingstekens en speciale witruimte (bijv. onzichtbare Unicode-tekens)
- Slimme aanvulling van afgekapte JSON: handelt afgekapte API-responses en ontbrekende afsluitende accolades af door ontbrekende haakjes en aanhalingstekens automatisch aan te vullen
- Visualisatie van gerepareerde problemen: auto-statistieken en toont de telling van elke gerepareerde probleemklasse voor eenvoudige audit en menselijke review
- Lokale verwerking voor privacy: parsen, reparatie en formattering vinden allemaal lokaal in de browser plaats, geen invoer naar een server gestuurd
- Naadloze overgang naar formattering: gerepareerde standaard JSON kan direct naar JSON Formatter, Schema Validator of codegenerator als volgende stappen
- Bestand- en voorbeeldlading: ondersteunt upload van .json/.txt-bestanden of klik om een voorbeeld te laden voor snelle verificatie van reparatie-effecten
Codevoorbeelden
Programmatische reparatie met de jsonrepair JavaScript-bibliotheek
javascript// npm install jsonrepair
import { jsonrepair } from 'jsonrepair';
const broken = `{
name: 'Alice',
age: 30,
tags: ['dev', 'writer',], // achterste komma + opmerking
}`;
try {
const fixed = jsonrepair(broken);
const obj = JSON.parse(fixed);
console.log(obj);
// => { name: 'Alice', age: 30, tags: ['dev', 'writer'] }
} catch (err) {
console.error('Nog steeds niet te repareren:', err.message);
}Programmatische reparatie met de jsonrepair Python-bibliotheek
python# pip install jsonrepair
from jsonrepair import jsonrepair
import json
broken = '''{
name: "Alice",
age: 30,
tags: ["dev", "writer",], // achterste komma + opmerking
}'''
fixed = jsonrepair(broken)
obj = json.loads(fixed)
print(obj)
# => {'name': 'Alice', 'age': 30, 'tags': ['dev', 'writer']}Snelle achterste komma fix met jq + sed (alleen noodgeval)
bash# Verwijdert achterste komma's van objecten/arrays (noodoptie; handelt GEEN opmerkingen / enkele aanhalingstekens af) # Voor complexe scenario's gebruikt u een speciale bibliotheek zoals jsonrepair sed -E 's/,([ \t]*[}\]])/\1/g' broken.json > clean.json # Valideert de opgeschoonde output jq . clean.json >/dev/null && echo 'JSON is geldig'
Veelgestelde vragen
Wat is het verschil tussen JSON repareren en JSON formatteren?
JSON Formatter herformatteert alleen JSON dat al geldig is maar inconsistente inspringing of witruimte heeft. JSON Repair daarentegen behandelt specifiek JSON met syntaxfouten: het corrigeert eerst structurele problemen zoals achterste komma's, enkele aanhalingstekens, opmerkingen, ontbrekende haakjes, en voert dan standaardformaat uit. Wanneer een formatter-tool een SyntaxError gooit, moet u eerst JSON Repair gebruiken.
Welke veelvoorkomende JSON-syntaxfouten kan de tool repareren?
De tool bevat intelligente reparatie-algoritmen voor de volgende frequente problemen: 1) Achterste komma's; 2) Enkele aanhalingstekens in plaats van dubbele; 3) Sleutels zonder aanhalingstekens; 4) Niet-gesloten strings; 5) JavaScript regel-/blokopmerkingen; 6) JSON verpakt in Markdown-codeblokken; 7) Ontbrekende afsluitende accolades/haakjes door afkapping.
Waarom is JSON-output van AI of LLM's vaak niet-standaard?
Grote taalmodellen (bijv. ChatGPT, Claude, Gemini) produceren vaak JSON verpakt in Markdown (```json ... ```), met verklarende prefix/achtervoegsel-tekst, achterste komma's, opmerkingen of met onvolledige structuur door token-afkapping. JSON Repair is specifiek geoptimaliseerd voor deze scenario's om AI-output met één klik op te schonen naar geldige JSON.
Is de gerepareerde JSON altijd structureel identiek aan de oorspronkelijke gegevens?
De gerepareerde output is een geldige JSON-string die voldoet aan de JSON-standaard; de datasemantiek wordt in de overgrote meerderheid van de gevallen behouden. Aangezien reparatie echter gebaseerd is op heuristische regels, kan deze in extreem gebroken of dubbelzinnige scenario's (bijv. meerdere ontbrekende komma's op dezelfde regel) enigszins afwijken van de oorspronkelijke bedoeling. We raden Schema-validatie of menselijke review aan voor kritieke gegevens.
Waarom niet direct Python json.loads of JavaScript JSON.parse gebruiken?
Native parsers kunnen alleen fouten gooien bij SyntaxError, niet repareren. JSON Repair is een tolerante laag die voor native parsers wordt geplaatst: het probeert eerst de tekst te repareren en geeft deze vervolgens door aan de native parser, zodat de uiteindelijke output door elke strikte JSON-parser kan worden geconsumeerd. Hetzelfde idee kan worden toegepast als voorverwerking in productieomgevingen aan de serverzijde.
Worden opmerkingen in JSON5 / JSONC behouden?
Nee. Opmerkingen maken deel uit van de uitgebreide JSON5-syntaxis, niet van standaard JSON. De tool verwijdert ze om ervoor te zorgen dat de output voldoet aan standaard JSON. Als u opmerkingen wilt behouden, gebruik dan JSON5-bronbestanden of de JSONC-toolchain. Als u JSON5 naar standaard JSON moet converteren, doet deze tool dat direct.
Kan afgekapte JSON (bijv. streaming-output afgekapt) worden gerepareerd?
Ja. De tool probeert ontbrekende rechter haakjes, vierkante haken en string-afsluitende aanhalingstekens te matchen, waarbij zoveel mogelijk geïdentificeerde inhoud behouden blijft. Opmerking: als het afkappingspunt binnen een string-literal valt, moet u mogelijk de ontbrekende sleuteltekens handmatig aanvullen.
Is er gegevensverlies na de reparatie?
In veelvoorkomende reparatiescenario's (achterste komma's verwijderen, aanhalingstekens toevoegen, haakjes aanvullen, opmerkingen verwijderen) wordt de datasemantiek volledig behouden. In zeldzame gevallen, wanneer de oorspronkelijke inhoud onomkeerbare dubbelzinnigheid heeft (bijv. vernietigd nestingsniveau), zal de tool zo conservatief mogelijk repareren en de oorspronkelijke als zodanig uitvoeren; het zal niet actief velden of sleutels verwijderen.
Kan ik meerdere JSON's in batch repareren?
Deze tool repareert één invoer tegelijk. Voor batch-scenario's raden we aan het onderliggende algoritme lokaal in een script uit te voeren (bijv. de Python jsonrepair-bibliotheek of het josdejong/jsonrepair npm-pakket) en het resultaat vervolgens in deze tool te importeren voor menselijke verificatie en formattering.
Moet ik na de reparatie nog steeds formatteren en Schema-validatie doen?
Aanbevolen. Reparatie pakt voornamelijk syntaxfouten aan; formattering en Schema-validatie zorgen voor leesbaarheid en bedrijfscorrectheid. De output van de reparatietool sluit naadloos aan op de JSON Formatter, Schema Validator en codegeneratoren van GeekFormat.
Uploadt de tool mijn JSON naar een server?
Nee. Alle parsing, reparatie en formattering vinden lokaal in de browser plaats; noch invoer noch tussenresultaten worden naar een server gestuurd. Werkt offline, geschikt voor het verwerken van gevoelige JSON (bijv. productieomgeving API-responses, interne configuraties).
Kan ik de telkens gebruikte reparatiestrategie vastleggen?
Deze tool activeert standaard alle veelvoorkomende reparatieregels om het succespercentage te maximaliseren. Als u fijnmazige controle over regels nodig heeft voor een specifieke taal of team, kunt u de jsonrepair-bibliotheek in uw productieomgeving gebruiken en specifieke regels selectief in- of uitschakelen. De output van deze tool kan ook dienen als gestandaardiseerde invoer voor downstream-validatie.
Probleemoplossing
Fout 'Kan deze JSON niet repareren'
Oorzaak: de invoertekst heeft ernstige structurele schade, zoals meerdere ontbrekende haakjes, afgekapte string-literals of een beschadigde tekenset. Oplossing: open het originele bestand eerst in een kale teksteditor, bevestig dat de codering UTF-8 zonder BOM is en het geen gecomprimeerd binair bestand is; als de gegevens van een API-response kwamen, neem dan contact op met de upstream om ze aan te vullen; voor extreem kapotte gegevenssets gebruikt u het bronbestand rechtstreeks.
Velden verplaatst naar de verkeerde positie na reparatie
Oorzaak: de originele tekst bevatte JSON-syntaxtekens (bijv. //, /*, }) in opmerkingen of string-literals, waardoor de parser op het verkeerde been werd gezet; of het nestingsniveau is zo diep dat de haakjesuitlijning verschoven is. Oplossing: escape handmatig // en /* in strings; voeg voor diep geneste gegevens tijdelijke buitenste haakjes of regeleinden toe voordat u de reparatie opnieuw uitvoert.
Verklarende tekst in AI-output wordt niet verwijderd
Oorzaak: AI-output begint/eindigt vaak met natuurlijke taal (bijv. 'Hier is het resultaat:') en kan meerdere regels beslaan. Oplossing: gebruik een teksteditor om de tekst buiten het JSON-blok te verwijderen, en behoud alleen de inhoud binnen de buitenste ```json-wrapper; als de tool het nog steeds niet herkent, voeg dan handmatig de buitenste { } toe voordat u de reparatie opnieuw uitvoert.
Grootte niet veranderd na reparatie, of sommige tekens vervangen
Oorzaak: het origineel bevatte backslashes, Unicode-escapes of HTML-entiteiten, die de tool opnieuw heeft geëscaped volgens de JSON-regels. Oplossing: controleer of het origineel genest was in een JS-string; als het in een HTML-pagina staat, decodeer dan eerst HTML; meer tekens na het escapen is normaal.
Browser toont 'Onvoldoende geheugen' of loopt vast
Oorzaak: een enkele invoer van meer dan 5-10 MB oefent aanzienlijke geheugendruk uit op de browser. Oplossing: splits de gegevens in kleinere batches (1-2 MB elk); of gebruik de jsonrepair-bibliotheek aan de serverzijde voor streaming; een klein verschil tussen gerepareerd resultaat en origineel is normaal.
Schema-validatie meldt nog steeds fouten na reparatie
Oorzaak: JSON Repair lost alleen syntaxfouten op; het dwingt geen bedrijfsveldnamen, -typen of -waarden af tegen het Schema. Oplossing: gebruik de JSON Schema Validation-tool van GeekFormat om veldbeperkingen te controleren; lokaliseer specifieke velden op basis van de fout en corrigeer ze handmatig.
Woordenlijst
- JSON
- JavaScript Object Notation, een lichtgewicht gegevensuitwisselingsformaat op basis van sleutel-waardeparen, gedefinieerd in RFC 8259. De facto standaard voor REST-API's, configuratiebestanden en logs.
- RFC 8259
- De officiële JSON-specificatie van de IETF, die de strikte syntaxis voor geldige JSON definieert - alle sleutels moeten tussen dubbele aanhalingstekens staan, slechts een beperkt aantal tekens in strings hoeft te worden geëscaped, opmerkingen en achterste komma's zijn niet toegestaan.
- JSON.parse
- De strikte JSON-parser die is ingebouwd in JavaScript en moderne browsers, volgens RFC 8259. Gooit SyntaxError bij elke syntaxfout en kan geen tolerante reparatie uitvoeren.
- JSON5
- Een uitgebreide syntaxis voor JSON (niet-standaard), die sleutels zonder aanhalingstekens, strings met enkele aanhalingstekens, opmerkingen (// en /* */), achterste komma's, hexadecimale getallen, etc. toestaat. Makkelijker om met de hand te schrijven, maar incompatibel met JSON.parse.
- JSONC
- JSON with Comments, een generieke naam die door editors zoals VS Code wordt gebruikt voor JSON-configuratiebestanden met opmerkingen (bijv. tsconfig.json). Effectief een alias voor JSON5.
- Achterste komma
- Een extra komma na het laatste element van een object of array. Toegestaan in JavaScript maar verboden door de JSON-standaard - de meest voorkomende syntaxfout van LLM-output en console.log()-kopieën.
- Markdown-codeblok
- Een codefragment verpakt in drie backticks (```). LLM's verpakken JSON-output vaak automatisch in ```json ... ```; dit direct in JSON.parse() plakken zal mislukken.
- Tolerante parser
- Een parser die probeert te herstellen en door te gaan met parsen wanneer hij syntaxfouten tegenkomt. De kernengine van een JSON Repair-tool, anders dan de strikte JSON.parse.
- SyntaxError
- De syntaxfout-uitzondering die door JavaScript wordt gegooid. Elke strikte JSON-parser gooit deze wanneer invoer niet voldoet aan RFC 8259.
- Canonieke JSON
- JSON die opnieuw is gegenereerd via parse + stringify, met stabiele sleutelvolgorde, zonder extra witruimte en 100% compatibel met standaard parsers. Het uiteindelijke outputformaat van een JSON Repair-tool.
Veelvoorkomende JSON Repair Fouttypen met Voorbeelden
| Categorie | Voor | Na | Reparatiemethode |
|---|---|---|---|
| Achterste komma | { "a": 1, } | { "a": 1 } | Verwijder de komma na het laatste element |
| Enkele aanhalingstekens | { 'a': 1 } | { "a": 1 } | Vervang alle enkele aanhalingstekens door dubbele |
| Sleutels zonder aanhalingstekens | { a: 1 } | { "a": 1 } | Voeg dubbele aanhalingstekens rond de sleutel toe |
| Regelopmerkingen | { // opmerking
"a": 1 } | { "a": 1 } | Verwijder // regelopmerkingen |
| Blokopmerkingen | { /* blok */ "a": 1 } | { "a": 1 } | Verwijder /* */ blokopmerkingen |
| Markdown-wrapper | ```json
{ "a": 1 }
``` | { "a": 1 } | Verwijder ```json en ``` wrappers |
| Niet-gesloten string | { "a": "hallo } | { "a": "hallo" } | Voeg ontbrekend afsluitend aanhalingsteken toe |
| Ontbrekend haakje | { "a": 1 | { "a": 1 } | Stack-match om ontbrekende accolade/haakje toe te voegen |
JSON repareren vs JSON formatteren vs JSON Schema validatie
| Tool | Wat het oplost | Invoervereiste | Foutmodus |
|---|---|---|---|
| JSON repareren | Syntaxfout-JSON naar geldige JSON converteren | Tolerant, accepteert niet-standaard JSON | Fout als te gebroken om structuur te raden |
| JSON formatteren | Geldige JSON herformatteren | Moet al geldige JSON zijn | SyntaxError direct gegooid |
| JSON comprimeren | Witruimte verwijderen, grootte verminderen | Moet al geldige JSON zijn | SyntaxError direct gegooid |
| JSON Schema validatie | Veldtypen/waarden vs bedrijfsregels controleren | Moet al geldige JSON zijn | Lijst elk veld dat regels overtreedt |
| JSON Merge / Sort | Multi-bron merge / sleutel sortering | Moet al geldige JSON zijn | SyntaxError direct gegooid |
Authoritative References
- JSON Compress
- CSV naar JSON Converter
- JSON naar CSV
- JSON Diff
- JSON Escape / Unescape
- JSON afvlakken
- JSON Formatter
- JSON-generator
- JSONPath Online Query
- JSON samenvoegen
- JSON repareren
- JSON Schema Validator
- JSON sorteren
- JSON Stringify
- JSON naar HTML-tabel
- JSON naar Java
- JSON to Markdown
- JSON naar SQL
- JSON naar TOML
- JSON naar TypeScript
- XML naar JSON
- JSON naar XML
- YAML naar JSON
- JSON naar YAML
- JSON naar Python
- JSON naar Go
- JSON naar Rust
- JSON naar Swift
- JSON naar C#
- JSON naar C++
- JSON naar PHP