Réparer JSON
Outil gratuit en ligne pour réparer JSON. Détecte et corrige automatiquement les virgules finales, guillemets simples, clés sans guillemets, crochets non fermés, commentaires et enveloppes Markdown. Conçu pour le nettoyage des sorties IA et la récupération de JSON tronqué. 100% local dans le navigateur.
Recommandations connexes
Qu'est-ce que Réparer JSON (JSON Repair) ?
Réparer JSON (JSON Repair) est le processus consistant à prendre un texte JSON non standard qu'un analyseur JSON strict ne peut pas consommer en raison d'erreurs de syntaxe, et à le restaurer automatiquement en une chaîne JSON valide conforme à RFC 8259. Contrairement au Formateur JSON (Beautify), Réparer JSON ne traite pas les différences de format mais les erreurs structurelles : virgules finales, guillemets simples, guillemets manquants, crochets non fermés, enveloppes Markdown, commentaires — tout cela fait que JSON.parse() lance SyntaxError, mais ils sont extrêmement courants en développement réel.
Les sources de JSON « non standard » dans les vrais projets d'ingénierie sont très concentrées : ① Lors de la copie depuis des LLM comme ChatGPT / Claude / Gemini, la sortie est souvent enveloppée dans des blocs de code Markdown (```json ... ```) ou accompagnée de texte explicatif ; ② La copie depuis console.log() d'un objet JavaScript peut inclure des virgules finales et des guillemets simples ; ③ Les fichiers de configuration utilisent souvent la syntaxe étendue JSON5 / JSONC (autorisant commentaires, clés sans guillemets, chaînes multi-lignes, etc.) ; ④ Les réponses en streaming ou les logs tronqués peuvent casser le JSON en plein flux, manquant le `}` ou `"` de fermeture. Un outil Réparer JSON scanne le texte, identifie ces problèmes typiques et restaure le contenu en JSON standard selon le principe de « mínima intrusión » tout en préservant au maximum la sémantique des données originales.
Au niveau de l'implémentation, Réparer JSON se compose généralement de deux étapes : ① Analyse tolérante (tolerant parse) — utiliser un scanner basé sur une machine à états plutôt que des expressions régulières pour traiter le flux de caractères pas à pas, en distinguant les caractères de syntaxe « à l'intérieur des chaînes » de « à l'extérieur » ; ② Sortie canonique (canonical output) — régénérer le résultat avec `JSON.parse` + `JSON.stringify`, garantissant que la sortie soit 100% valide pour tout analyseur strict en aval. L'outil Réparer JSON de GeekFormat accomplit tout le flux de réparation localement dans le navigateur, sans envoyer le contenu original à aucun serveur, adapté au traitement des réponses API sensibles, fichiers de configuration internes et sorties de modèles IA.
Cas d'utilisation
- Nettoyage des sorties IA/LLM : convertit en un clic le JSON de ChatGPT/Claude enveloppé en Markdown, avec texte explicatif et virgules finales en JSON standard
- Débogage et dépannage d'interface : quand les réponses API sont tronquées par une passerelle ou des problèmes réseau, complète rapidement les crochets et chaînes pour localiser la structure de données originale
- Littéraux d'objet JavaScript copiés de la console : solution unique pour guillemets simples, virgules finales et clés sans guillemets
- Nettoyage de fichiers de configuration : retire les commentaires de JSON5/JSONC pour obtenir du JSON standard, prêt à la consommation unifiée en aval
- Réparation de données de logs et presse-papiers : standardise rapidement les extraits JSON contenant commentaires, espaces spéciaux ou troncatures
- Migration de données et pré-traitement de scripts : ajoute une étape de réparation dans le pipeline de migration de données pour éviter que quelques JSON invalides ne bloquent tout un lot ETL
Comment utiliser
- Collez le contenu JSON contenant des erreurs, enveloppé en Markdown ou tronqué dans la zone de saisie gauche, ou cliquez sur « Exemple » pour charger un JSON cassé typique, ou téléchargez un fichier .json/.txt
- L'outil détecte et répare automatiquement les problèmes de syntaxe courants ; la zone de sortie droite affiche le JSON standard formaté et le nombre de chaque classe de problème réparé
- Si des messages d'erreur rouges subsistent, vous pouvez éditer manuellement l'entrée et redéclencher la réparation (Mac : ⌘+Shift+R, Windows : Ctrl+Shift+R)
- Après avoir confirmé que la structure est correcte, cliquez sur « Copier » pour mettre le résultat réparé dans le presse-papiers, ou cliquez sur « Télécharger » pour enregistrer en repaired.json pour formatage, validation, etc.
Fonctionnalités
- Couvre 7 erreurs de syntaxe courantes : virgules finales, guillemets simples, clés sans guillemets, chaînes non fermées, commentaires, crochets manquants, enveloppes de bloc de code Markdown
- Optimisé pour le nettoyage des sorties IA : retire automatiquement les enveloppes ```json et le texte explicatif environnant ; reconnaît les sorties typiques de ChatGPT, Claude, Gemini et autres LLM
- Compatible JSON5/JSONC : analyse la syntaxe étendue incluant commentaires, guillemets souples et espaces spéciaux (ex. caractères Unicode invisibles)
- Complétion intelligente de JSON tronqué : gère les réponses API tronquées et accolades fermantes manquantes en complétant automatiquement les crochets et guillemets manquants
- Visualisation des problèmes réparés : auto-statistiques et affichage du nombre de chaque classe de problème réparé pour audit et revue humaine faciles
- Traitement local pour la confidentialité : analyse, réparation et formatage se font localement dans le navigateur, aucune entrée envoyée à un serveur
- Transition transparente vers le formatage : le JSON standard réparé peut passer directement au Formateur JSON, Validateur Schema ou générateur de code comme étapes suivantes
- Chargement de fichiers et exemples : supporte le téléchargement de fichiers .json/.txt ou le clic pour charger un échantillon pour vérification rapide des effets de réparation
Exemples de code
Réparation programmatique avec la librairie jsonrepair JavaScript
javascript// npm install jsonrepair
import { jsonrepair } from 'jsonrepair';
const broken = `{
name: 'Alice',
age: 30,
tags: ['dev', 'writer',], // virgule finale + commentaire
}`;
try {
const fixed = jsonrepair(broken);
const obj = JSON.parse(fixed);
console.log(obj);
// => { name: 'Alice', age: 30, tags: ['dev', 'writer'] }
} catch (err) {
console.error('Toujours irréparable :', err.message);
}Réparation programmatique avec la librairie jsonrepair Python
python# pip install jsonrepair
from jsonrepair import jsonrepair
import json
broken = '''{
name: "Alice",
age: 30,
tags: ["dev", "writer",], // virgule finale + commentaire
}'''
fixed = jsonrepair(broken)
obj = json.loads(fixed)
print(obj)
# => {'name': 'Alice', 'age': 30, 'tags': ['dev', 'writer']}Correction rapide des virgules finales avec jq + sed (urgence uniquement)
bash# Supprime les virgules finales des objets/tableaux (option d'urgence ; NE gère PAS commentaires / guillemets simples) # Pour des scénarios complexes, utilisez une librairie dédiée comme jsonrepair sed -E 's/,([ \t]*[}\]])/\1/g' broken.json > clean.json # Valide la sortie nettoyée jq . clean.json >/dev/null && echo 'JSON est valide'
FAQ
Quelle est la différence entre Réparer JSON et Formater JSON ?
Le Formateur JSON ne fait que reformater du JSON déjà légal mais avec indentation ou espacement incohérent. Réparer JSON, en revanche, gère spécifiquement le JSON avec erreurs de syntaxe : il corrige d'abord les problèmes structurels comme les virgules finales, guillemets simples, commentaires, crochets manquants, puis émet un format standard. Quand un outil de formatage lance SyntaxError, vous devriez commencer par Réparer JSON.
Quelles erreurs de syntaxe JSON courantes l'outil peut-il réparer ?
L'outil inclut des algorithmes de réparation intelligents pour les problèmes fréquents suivants : 1) Virgules finales ; 2) Guillemets simples à la place de doubles ; 3) Clés sans guillemets ; 4) Chaînes non fermées ; 5) Commentaires JavaScript de ligne/bloc ; 6) JSON enveloppé dans des blocs de code Markdown ; 7) Accolades/crochets fermants manquants dus à troncature.
Pourquoi la sortie JSON d'IA ou de LLM est-elle souvent non standard ?
Les grands modèles de langage (ex. ChatGPT, Claude, Gemini) produisent fréquemment du JSON enveloppé en Markdown (```json ... ```), avec du texte explicatif en préfixe/suffixe, des virgules finales, des commentaires, ou une structure incomplète due à la troncature de tokens. Réparer JSON est spécifiquement optimisé pour ces scénarios afin de nettoyer en un clic la sortie IA en JSON valide.
Le JSON réparé est-il toujours structurellement identique aux données originales ?
La sortie réparée est une chaîne JSON valide conforme au standard JSON ; la sémantique des données est préservée dans la grande majorité des cas. Cependant, puisque la réparation repose sur des règles heuristiques, dans des scénarios extrêmement cassés ou ambigus (ex. plusieurs virgules manquantes sur la même ligne) elle peut dévier légèrement de l'intention originale. Nous recommandons d'exécuter une Validation Schema ou une revue humaine pour les données critiques.
Pourquoi ne pas utiliser directement Python json.loads ou JavaScript JSON.parse ?
Les analyseurs natifs ne peuvent que lancer des erreurs sur SyntaxError, pas réparer. Réparer JSON est une couche tolérante qui se place devant les analyseurs natifs : il tente d'abord de réparer le texte, puis le passe à l'analyseur natif, garantissant que la sortie finale soit consommable par tout analyseur JSON strict. La même idée peut être appliquée comme pré-traitement dans des environnements de production côté serveur.
Les commentaires dans JSON5 / JSONC sont-ils préservés ?
Non. Les commentaires font partie de la syntaxe étendue JSON5, pas du JSON standard. L'outil les supprime pour garantir que la sortie soit conforme au JSON standard. Si vous souhaitez les conserver, continuez à utiliser les fichiers source JSON5 ou la chaîne d'outils JSONC. Si vous devez convertir JSON5 en JSON standard, cet outil le fait directement.
Le JSON tronqué (ex. sortie streaming coupée) peut-il être réparé ?
Oui. L'outil tente d'apparier les parenthèses droites, crochets et guillemets de fermeture de chaîne manquants, en préservant autant de contenu identifié que possible. Note : si le point de troncature tombe à l'intérieur d'un littéral de chaîne, vous pourriez avoir besoin de fournir manuellement les caractères clés manquants.
Y a-t-il une perte de données après réparation ?
Dans les scénarios de réparation courants (suppression des virgules finales, ajout de guillemets, complétion des crochets, suppression des commentaires) la sémantique des données est entièrement préservée. Dans de rares cas, lorsque le contenu original a une ambiguïté irréversible (ex. niveau d'imbrication détruit), l'outil réparera aussi conservativement que possible et émettra l'original tel quel ; il ne supprimera pas activement de champs ou clés.
Puis-je réparer plusieurs JSON en lot ?
Cet outil répare une entrée à la fois. Pour les scénarios par lots, nous recommandons d'exécuter l'algorithme sous-jacent localement dans un script (ex. la librairie jsonrepair de Python ou le paquet npm josdejong/jsonrepair), puis d'importer le résultat dans cet outil pour vérification humaine et formatage.
Dois-je encore faire du formatage et de la Validation Schema après réparation ?
Recommandé. La réparation traite principalement les erreurs au niveau syntaxe ; le formatage et la Validation Schema garantissent la lisibilité et la correction métier. La sortie de l'outil de réparation se connecte parfaitement au Formateur JSON, Validateur Schema et générateurs de code de GeekFormat.
L'outil va-t-il télécharger mon JSON sur un serveur ?
Non. Toute l'analyse, réparation et formatage se font localement dans le navigateur ; ni l'entrée ni les résultats intermédiaires ne sont envoyés à aucun serveur. Fonctionne hors ligne, adapté pour gérer du JSON sensible (ex. réponses API d'environnements de production, configurations internes).
Puis-je fixer la stratégie de réparation utilisée à chaque fois ?
Cet outil active toutes les règles de réparation courantes par défaut pour maximiser le taux de réussite. Si vous avez besoin d'un contrôle fin sur les règles pour un langage ou une équipe spécifique, vous pouvez utiliser la librairie jsonrepair dans votre environnement de production et activer ou désactiver sélectivement certaines règles. La sortie de cet outil peut aussi servir d'entrée standardisée pour la validation en aval.
Dépannage
Erreur « Impossible de réparer ce JSON »
Cause : le texte d'entrée présente des dégâts structurels sévères, comme plusieurs crochets manquants, littéraux de chaîne tronqués, ou jeu de caractères corrompu. Solution : ouvrez d'abord le fichier original dans un éditeur de texte brut, confirmez que l'encodage est UTF-8 sans BOM et qu'il ne s'agit pas d'un binaire compressé ; si les données proviennent d'une réponse API, contactez l'amont pour les compléter ; pour des ensembles de données extrêmement cassés, utilisez directement le fichier source.
Les champs ont été déplacés à la mauvaise position après réparation
Cause : le texte original contenait des caractères de syntaxe JSON (ex. //, /*, }) dans des commentaires ou littéraux de chaîne, induisant l'analyseur en erreur ; ou le niveau d'imbrication est si profond que l'appariement des crochets est décalé. Solution : échappez manuellement les // et /* dans les chaînes ; pour les données profondément imbriquées, ajoutez des crochets temporaires externes ou des sauts de ligne avant de relancer la réparation.
Le texte explicatif dans la sortie IA n'est pas supprimé
Cause : la sortie IA commence/se termine souvent par du langage naturel (ex. « Voici le résultat : ») et peut s'étendre sur plusieurs lignes. Solution : utilisez un éditeur de texte pour supprimer le texte hors du bloc JSON, en ne gardant que le contenu dans l'enveloppe ```json la plus externe ; si l'outil ne le reconnaît toujours pas, ajoutez manuellement les { } externes avant de relancer la réparation.
La taille n'a pas changé après réparation, ou certains caractères ont été remplacés
Cause : l'original contenait des barres obliques inverses, échappements Unicode ou entités HTML, que l'outil a ré-échappés selon les règles JSON. Solution : vérifiez si l'original était imbriqué dans une chaîne JS ; s'il est dans une page HTML, décodez HTML d'abord ; plus de caractères après échappement est normal.
Le navigateur affiche « Mémoire insuffisante » ou se fige
Cause : une seule entrée de plus de 5–10 Mo exerce une pression mémoire significative sur le navigateur. Solution : divisez les données en lots plus petits (1–2 Mo chacun) ; ou utilisez la librairie jsonrepair côté serveur pour le streaming ; une petite différence entre le résultat réparé et l'original est normale.
La validation Schema rapporte encore des erreurs après réparation
Cause : Réparer JSON ne corrige que les erreurs au niveau syntaxe ; il n'impose pas les noms, types ou valeurs de champs métier contre le Schema. Solution : utilisez l'outil de Validation JSON Schema de GeekFormat pour vérifier les contraintes de champs ; localisez les champs spécifiques par erreur et corrigez-les manuellement.
Glossaire
- JSON
- JavaScript Object Notation, format léger d'échange de données basé sur des paires clé-valeur défini dans RFC 8259. Standard de facto pour les API REST, fichiers de configuration et logs.
- RFC 8259
- Spécification JSON officielle de l'IETF, définissant la syntaxe stricte d'un JSON valide — toutes les clés doivent être entre guillemets doubles, seul un ensemble limité de caractères dans les chaînes nécessitent un échappement, les commentaires et virgules finales ne sont pas autorisés.
- JSON.parse
- Analyseur JSON strict intégré à JavaScript et aux navigateurs modernes, conforme à RFC 8259. Il lance SyntaxError sur toute erreur de syntaxe et ne peut pas effectuer de réparation tolérante.
- JSON5
- Syntaxe étendue de JSON (non standard), autorisant les clés sans guillemets, chaînes à guillemets simples, commentaires (// et /* */), virgules finales, nombres hexadécimaux, etc. Plus facile à écrire à la main mais incompatible avec JSON.parse.
- JSONC
- JSON with Comments, nom générique utilisé par les éditeurs comme VS Code pour les fichiers de configuration JSON avec commentaires (ex. tsconfig.json). Effectivement un alias de JSON5.
- Virgule finale
- Virgule supplémentaire après le dernier élément d'un objet ou tableau. Autorisée en JavaScript mais interdite par le standard JSON — l'erreur de syntaxe la plus courante des sorties LLM et copies de console.log().
- Bloc de code Markdown
- Extrait de code entouré de trois accents graves (```). Les LLM enveloppent souvent automatiquement la sortie JSON dans ```json ... ``` ; la coller directement dans JSON.parse() échouera.
- Analyseur Tolérant
- Analyseur qui tente de récupérer et continuer l'analyse lors d'erreurs de syntaxe. Le moteur principal d'un outil Réparer JSON, distinct du JSON.parse strict.
- SyntaxError
- Exception d'erreur de syntaxe lancée par JavaScript. Tout analyseur JSON strict la lance lors d'une entrée non conforme à RFC 8259.
- JSON Canonique
- JSON régénéré via parse + stringify, avec ordre des clés stable, sans espace superflu et 100% compatible avec les analyseurs standard. Format de sortie final d'un outil Réparer JSON.
Types d'Erreurs Courants en Réparation JSON avec Exemples
| Catégorie | Avant | Après | Méthode de réparation |
|---|---|---|---|
| Virgule finale | { "a": 1, } | { "a": 1 } | Supprimer la virgule après le dernier élément |
| Guillemets simples | { 'a': 1 } | { "a": 1 } | Remplacer tous les guillemets simples par des doubles |
| Clés sans guillemets | { a: 1 } | { "a": 1 } | Ajouter des guillemets doubles autour de la clé |
| Commentaires de ligne | { // commentaire
"a": 1 } | { "a": 1 } | Supprimer les commentaires // |
| Commentaires de bloc | { /* bloc */ "a": 1 } | { "a": 1 } | Supprimer les commentaires /* */ |
| Enveloppe Markdown | ```json
{ "a": 1 }
``` | { "a": 1 } | Retirer les enveloppes ```json et ``` |
| Chaîne non fermée | { "a": "bonjour } | { "a": "bonjour" } | Ajouter le guillemet de fermeture manquant |
| Crochet manquant | { "a": 1 | { "a": 1 } | Apparier la pile pour ajouter accolade/crochet fermant |
Réparer JSON vs Formater JSON vs Validation JSON Schema
| Outil | Ce qu'il résout | Exigence d'entrée | Mode d'échec |
|---|---|---|---|
| Réparer JSON | Convertir JSON avec erreur en JSON valide | Tolérant, accepte JSON non standard | Erreur si trop cassé pour deviner la structure |
| Formater JSON | Reformater du JSON valide | Doit être déjà du JSON valide | SyntaxError lancé directement |
| Compresser JSON | Supprimer les espaces, réduire la taille | Doit être déjà du JSON valide | SyntaxError lancé directement |
| Validation JSON Schema | Vérifier types/valeurs de champs vs règles métier | Doit être déjà du JSON valide | Liste chaque champ violant les règles |
| JSON Merge / Sort | Fusion multi-source / tri des clés | Doit être déjà du JSON valide | SyntaxError lancé directement |
Authoritative References
- Compression JSON
- CSV vers JSON
- JSON vers CSV
- JSON Diff
- JSON Escape / Unescape
- JSON Flatten
- Formatage JSON
- Générateur JSON
- Requête JSONPath
- Fusionner JSON
- Réparer JSON
- Validateur JSON Schema
- Trier JSON
- JSON Stringify
- JSON vers HTML
- JSON vers Java
- JSON to Markdown
- JSON en SQL
- JSON vers TOML
- JSON vers TypeScript
- XML vers JSON
- JSON vers XML
- YAML vers JSON
- JSON vers YAML
- JSON vers Python
- JSON vers Go
- JSON vers Rust
- JSON vers Swift
- JSON vers C#
- JSON vers C++
- JSON vers PHP