araç köşesi

Échapper / déséchapper du JSON

Transformez du JSON ou un texte en chaîne littérale à coller dans du code, ou déséchappez une chaîne pour retrouver un JSON lisible

Vos données restent chez vous. La conversion se fait dans le navigateur ; rien n'est envoyé à un serveur.

Comment ça marche

Deux usages reviennent souvent. Le premier : placer du JSON dans une chaîne. Si vous devez mettre du JSON dans un test unitaire, une colonne de base de données ou un champ d'un autre JSON, collez le JSON à gauche et laissez Échapper. À droite apparaît une chaîne sur une seule ligne, entourée de guillemets doubles, avec une barre oblique inverse devant chaque guillemet intérieur et \n à chaque saut de ligne : {"nom":"x"} → "{\"nom\":\"x\"}". Vous pouvez la coller telle quelle dans du code JavaScript, Java ou C#. Le second usage est l'inverse : si une ligne de journal, une réponse d'API ou un message d'erreur affiche un JSON échappé comme "{\"nom\":\"x\"}", collez-le et choisissez Déséchapper. Les guillemets extérieurs disparaissent, les échappements sont décodés et, si le résultat est un JSON valide, il revient indenté avec 2 espaces. Si la chaîne a été échappée deux fois (vous voyez \\\"), l'outil le détecte et décode un niveau de plus. Pour SQL, l'apostrophe est doublée (O'Brien → 'O''Brien') ; pour une cellule CSV, les guillemets sont doublés. Avec Java / C#, é, è ou ç s'écrivent \u00e9, etc., et survivent à n'importe quel encodage du fichier source.

Cet outil est aussi connu sous le nom de json escape, json unescape, json to string.

Qu'est-ce que Caractère d'échappement ?

Un caractère d'échappement retire son sens spécial au caractère qui le suit ; en JSON, JavaScript, Java et C#, c'est la barre oblique inverse (\). Comme une chaîne est délimitée par des guillemets doubles, un guillemet à l'intérieur s'écrit \" pour que la chaîne ne s'arrête pas là, et la barre oblique inverse elle-même devient \\. Les caractères invisibles s'écrivent aussi ainsi : \n pour un saut de ligne, \t pour une tabulation, \u00e9 pour le numéro de é.

Qu'est-ce que Chaîne littérale ?

Une chaîne littérale est un texte écrit entre guillemets dans du code source ou du JSON : "Bonjour". La littérale et le texte qu'elle porte ne sont pas la même chose ; la littérale "écran 5\"" porte le texte écran 5". Cet outil passe de l'un à l'autre : il construit une littérale à partir d'un texte (échapper) ou en extrait le texte (déséchapper), selon les règles du langage choisi.

Quelle est la différence entre échapper du JSON et encoder une URL ?

Échapper du JSON sert à placer un texte en sécurité dans une chaîne littérale : seuls les guillemets, barres obliques inverses et caractères de contrôle changent, lettres et espaces restent. L'encodage d'URL sert à faire d'un texte une partie d'adresse web : l'espace devient %20, é devient %C3%A9, et tout ce qui sort de l'ASCII est encodé en pourcentage. Pour mettre du JSON dans un paramètre d'URL, il faut les deux, l'un après l'autre ; pour l'insérer dans du code ou un autre champ JSON, l'échappement suffit. Base64 est encore autre chose.

Quel caractère devient quoi

Dans une chaîne JSON ou JavaScript, un guillemet double terminerait la chaîne : il s'écrit donc \" ; la barre oblique inverse commence un échappement et devient \\. Les caractères invisibles, saut de ligne, tabulation, retour chariot, ne peuvent pas rester bruts dans la chaîne et deviennent \n, \t et \r. Les autres caractères de contrôle s'écrivent \u001f. U+2028 et U+2029 sont aussi échappés, car d'anciens moteurs JavaScript les prennent pour des sauts de ligne.

La cible Java / C# utilise les mêmes échappements et écrit en plus tout caractère hors ASCII en \uXXXX : é → \u00e9, ç → \u00e7. Les accents restent ainsi intacts dans un fichier .java enregistré avec un autre encodage, et la sortie reste un JSON valide. La cible SQL double seulement l'apostrophe ; la cible CSV double seulement le guillemet et garde les sauts de ligne dans la cellule.

  • " → \" · \ → \\ · saut de ligne → \n · tabulation → \t
  • é → \u00e9 (cible Java / C# uniquement)
  • O'Brien → 'O''Brien' (SQL)
  • écran 5" → "écran 5""" (cellule CSV)

Pièges : double échappement et barre oblique inverse dans MySQL

Quand un JSON est stocké en chaîne dans un autre JSON et que l'ensemble est de nouveau échappé, les guillemets deviennent \\\" — fréquent dans les journaux. En mode Déséchapper, l'outil décode un niveau ; si le résultat est encore une chaîne JSON entre guillemets, il en décode un autre et indique combien de niveaux il a retirés. Le JSON valide est ensuite indenté, sauf s'il contient un nombre que JSON.parse modifierait (1.0 ou un identifiant de 17 chiffres) : le texte reste alors intact.

Le SQL standard échappe l'apostrophe en la doublant, et l'outil ne fait que cela. MySQL, dans son mode par défaut, traite aussi la barre oblique inverse comme un échappement : un chemin C:\nouveau devient un saut de ligne suivi de « ouveau ». Avec MySQL et du texte qui contient des barres obliques inverses, utilisez une requête paramétrée. Pour la même raison, échapper une saisie d'utilisateur avec cet outil puis la coller dans une requête ne protège pas contre l'injection SQL.

Questions fréquentes

Comment convertir du JSON en chaîne ?

Collez le JSON dans le panneau de gauche en laissant Échapper et JSON / JavaScript. À droite apparaît une chaîne sur une ligne, entre guillemets doubles, avec \" pour les guillemets intérieurs et \n pour les sauts de ligne. Collez-la telle quelle dans votre code ou dans un autre champ JSON.

Comment retrouver un JSON normal à partir d'une chaîne échappée ?

Collez la chaîne échappée (par exemple "{\"a\":1}") et choisissez Déséchapper. Les guillemets extérieurs disparaissent, \" redevient un guillemet et \n un saut de ligne. Si le résultat est un JSON valide, il est indenté avec 2 espaces ; une chaîne échappée deux fois est détectée et décodée d'un niveau de plus.

Pourquoi les lettres accentuées apparaissent-elles en \u00e9 ?

Avec la cible Java / C#, tout caractère hors ASCII s'écrit \uXXXX ; il survit ainsi même si le fichier source est enregistré dans un autre encodage. Pour garder é, è ou ç tels quels, choisissez la cible JSON / JavaScript.

Le texte collé est-il envoyé à un serveur ?

Non. L'échappement et le déséchappement se font entièrement dans votre navigateur ; même un JSON qui contient des clés d'API, des mots de passe ou des données clients ne quitte pas cette page. Une fois chargée, la page fonctionne hors connexion.