Corriger les clés sans guillemets en JSON
Des clés comme name, active ou profile doivent être entre guillemets en JSON valide, même quand elles ressemblent à un identifiant ordinaire.
Pourquoi les clés sans guillemets échouent
JavaScript autorise les noms de propriété nus dans les littéraux d’objet. Pas JSON ; chaque clé d’objet doit être une chaîne entre guillemets doubles.
Exemple cassé
{ name: "Ada", active: true }
JSON corrigé
{ "name": "Ada", "active": true }
Pourquoi les identifiants JavaScript ressemblent à des clés JSON
Dans un littéral d’objet JavaScript, { name: "Ada" } est légal parce que name est un identifiant valide. JSON a supprimé ce raccourci pour qu’un parser n’ait qu’une seule forme à reconnaître pour chaque clé — une chaîne entre guillemets —, ce qui garde la grammaire suffisamment petite pour être implémentée dans n’importe quel langage.
Clés qui ont toujours besoin de guillemets
Même si un parser acceptait des identifiants nus, plusieurs formes de clés nécessiteraient encore des guillemets : mots réservés comme return ou class, noms contenant des tirets ou des points, noms commençant par un chiffre, noms Unicode avec des caractères combinatoires ou des emojis. Mettre des guillemets à toutes les clés évite tous ces cas limites.
Quand l’auto-réparation peut mettre des guillemets sans risque
L’outil de réparation met des guillemets sur les identifiants nus en position de clé — c’est-à-dire juste après { ou , et suivis de :. Il ne touche ni aux clés déjà entre guillemets, ni aux valeurs, ni au texte à l’intérieur des chaînes, donc l’ajout de guillemets est sûr même quand le document mélange clés valides et invalides.
JSON5 et JSONC
JSON5 et JSONC (le format que VS Code utilise pour ses settings) autorisent tous deux les clés sans guillemets et les commentaires. Bien pour de la configuration éditée à la main, mauvais pour de l’échange — ne diffusez jamais du JSON5 via une API, les clients standards le rejetteront.
FAQ
Q : Pourquoi mon JSON a-t-il des clés sans guillemets ? R : Le plus souvent parce qu’il a été copié depuis un littéral d’objet JavaScript ou généré par un moteur de templates qui les a oubliés. Q : Puis-je laisser des clés sans guillemets dans package.json ? R : Non — package.json est du JSON strict ; seul tsconfig.json (JSONC) le tolère.
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 guillemets simples 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