Corriger les guillemets simples en JSON
Les chaînes et clés d’objet en JSON doivent utiliser des guillemets doubles. Les valeurs entre guillemets simples sont fréquentes dans les extraits JavaScript, les sorties façon Python et les réponses de LLM.
Pourquoi les guillemets simples échouent
Le JSON strict n’accepte que les chaînes entre guillemets doubles. Un parser refusera {'name':'Ada'} même si la forme paraît familière aux développeurs JavaScript.
Exemple cassé
{ 'name': 'Ada', 'active': true }
JSON corrigé
{ "name": "Ada", "active": true }
D’où vient le texte entre guillemets simples
repr() et l’impression des dictionnaires en Python, les littéraux d’objet JavaScript copiés depuis la console, l’inspection de hashes en Ruby et beaucoup de réponses de LLM utilisent des guillemets simples. Aucune de ces sources n’est du JSON — ce sont des littéraux natifs du langage qui se contentent d’y ressembler.
Pourquoi un find-and-replace aveugle est risqué
Remplacer ' par " sans précaution casse les valeurs contenant une apostrophe, comme { 'note': 'it\'s fine' }. Après le remplacement, l’apostrophe interne entre en collision avec le nouveau délimiteur de chaîne. Un convertisseur sûr doit suivre le contexte des guillemets et ne remplacer que les délimiteurs, pas les caractères internes.
Stratégie de conversion sûre
Tokenisez d’abord l’entrée : parcourez le texte, identifiez les bornes de chaînes par leur guillemet ouvrant, et reconstruisez chaque token avec des guillemets doubles — en échappant les guillemets doubles internes et en désechappant les guillemets simples devenus inutiles. L’outil de réparation de ce site fait cela en une passe.
Erreurs de syntaxe JSON associées
Le JSON entre guillemets simples vient souvent accompagné d’autres péchés à la JavaScript : clés sans guillemets, virgules finales, commentaires de ligne ou valeurs undefined. Après avoir réparé les guillemets, validez le résultat pour faire ressortir ce qui reste.
FAQ
Q : Les chaînes entre guillemets simples sont-elles valides en JSON5 ? R : Oui, JSON5 les autorise. Q : json.loads de Python accepte-t-il les guillemets simples ? R : Non — utilisez ast.literal_eval si la source est vraiment un littéral Python, sinon convertissez d’abord les guillemets. Q : Les clés JSON doivent-elles aussi être entre guillemets doubles ? R : Oui — les clés sont des chaînes, même règle.
Guides de réparation JSON
Pôles thématiques
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
Guides spécifiques
- Comment décoder des chaînes Base64 (et des payloads JWT)
- Encodage URL : encodez les paramètres de requête et les chemins
- Convertir YAML en JSON (et éviter les erreurs d’indentation)
- Convertir JSON en CSV : aplatir un tableau d’objets
- Convertir JSON en XML : racine, attributs et tableaux
- Échapper du JSON comme littéral de chaîne (et décoder du JSON doublement encodé)
- Corriger les virgules finales en JSON
- Corriger les clés sans guillemets en JSON
- Réparer le JSON produit par un LLM
- Corriger l’erreur de parse JSON : Expected Property Name
- JSON vs littéral d’objet JavaScript
- Validez le JSON avant les requêtes API
- Formateur JSON vs JSON Repair
- Corriger les erreurs JSON Unexpected Token
- Convertisseur JSON vers objet JavaScript