Échapper du JSON comme littéral de chaîne (et décoder du JSON doublement encodé)
Stringifier du JSON l’entoure de guillemets et échappe les guillemets internes et les caractères spéciaux, produisant un littéral de chaîne JSON sûr à embarquer ailleurs.
Ce que signifie « stringifier en littéral »
Passer une chaîne JSON à JSON.stringify la met entre guillemets doubles et échappe les guillemets internes et les antislashes, produisant une seule valeur de chaîne qu’on peut embarquer sans risque.
Pourquoi vous en avez besoin
Embarquer du JSON dans un autre champ JSON, stocker du JSON dans une colonne de type chaîne en base, ou passer du JSON via une variable d’environnement ou un paramètre d’URL nécessite un littéral de chaîne échappé.
Règles d’échappement
Les guillemets doubles sont échappés par un antislash, les antislashes sont doublés, et les caractères de contrôle comme le saut de ligne ou la tabulation deviennent des séquences d’échappement à deux caractères. Le résultat ne contient aucun saut de ligne brut.
Décoder du JSON doublement encodé
Si vous recevez une chaîne qui commence par un guillemet échappé et contient des séquences de guillemets échappés, elle a été stringifiée. Faites un parse une fois pour récupérer la chaîne JSON interne, puis un autre parse pour obtenir la vraie valeur.
Où apparaît le double encodage
Les frameworks de logging qui sérialisent les objets de contexte, les payloads de webhook qui mettent un corps JSON dans un champ 'body', les files de messages qui transportent des « enveloppes JSON-en-chaîne », et les colonnes de base typées text ou varchar sont les sources les plus courantes. Cherchez un guillemet en tête suivi d’un nombre pair d’antislashes.
Travailler avec du JSON embarqué dans les logs
Les loggers structurés stringifient souvent les objets pour qu’une ligne de log reste une seule valeur. Pour inspecter, extrayez la ligne du visualiseur, désechappez avec JSON.parse, puis formatez le JSON récupéré. Évitez de grepper un objet JSON multi-lignes — un JSON stringifié sur une ligne se cherche bien plus facilement.
Outils pour l’aller-retour
Console du navigateur : JSON.parse(line) renvoie le JSON interne, puis JSON.stringify(...,null,2) le met en forme. CLI Node : 'node -e "console.log(JSON.parse(process.argv[1]))" "<line>"' fait les deux étapes. L’outil JSON Stringify de ce site gère des imbrications arbitrairement profondes en un clic.
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
- Corriger les virgules finales en JSON
- Corriger les guillemets simples 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