Ce que fait cet outil
Une chaîne JSON est un texte entre guillemets doubles où certains caractères s’écrivent avec une barre oblique inverse : un guillemet double devient \", une barre oblique inverse devient \\, un saut de ligne devient \n et une tabulation \t. Cet outil prend votre texte et l’écrit sous cette forme. C’est exactement ce que fait JSON.stringify en JavaScript quand on lui donne une chaîne.
Vous en avez besoin quand un document JSON doit en transporter un autre, ou n’importe quel texte avec guillemets et sauts de ligne, dans un seul champ. Écrire les échappements à la main est lent et source d’erreurs. Une seule barre oblique oubliée rend toute la charge invalide.
Mode d’emploi
- Collez un texte ou du JSON dans la zone de gauche, appuyez sur Ouvrir un fichier ou sur Exemple.
- La chaîne échappée apparaît à droite pendant la frappe.
- Choisissez les options utiles :
- Compacter le JSON d’abord retire la mise en forme d’un JSON valide avant de l’échapper. Activé par défaut.
- Entourer de guillemets ajoute les guillemets doubles extérieurs. Désactivez-le si vous collez à un endroit qui a déjà des guillemets.
- Échapper le non-ASCII en \u écrit les lettres accentuées, les symboles et les autres caractères non ASCII sous forme de codes
\u.
- Appuyez sur Copier, ou sur Télécharger pour enregistrer le résultat en fichier texte.
La ligne sous les zones indique si la saisie était un JSON valide et combien de caractères compte le résultat.
Exemples
Un texte avec un guillemet et un saut de ligne :
He said "hello"
then left.
devient :
"He said \"hello\"\nthen left."
Avec un texte français, les guillemets « » n’ont pas besoin d’être échappés, puisque seul le guillemet droit " délimite une chaîne JSON. « Il a dit « bonjour » » suivi d’un saut de ligne et de « Puis il est parti. » devient :
"Il a dit « bonjour »\nPuis il est parti."
Un JSON formaté avec Compacter le JSON d’abord activé :
{
"name": "Ada",
"tags": ["admin", "dev"]
}
devient :
"{\"name\":\"Ada\",\"tags\":[\"admin\",\"dev\"]}"
Avec Compacter le JSON d’abord désactivé, l’indentation est gardée et échappée, donc { suivi d’un saut de ligne et de "name": "Ada" devient :
"{\n \"name\": \"Ada\"\n}"
Un chemin Windows, où chaque barre oblique inverse est doublée :
"C:\\Users\\Ada\\notes.txt"
Les caractères non ASCII
Le JSON accepte n’importe quel caractère Unicode dans une chaîne, donc Café 東京 est valide tel quel :
"Café 東京"
Certains systèmes anciens, terminaux ou champs limités en octets n’acceptent que l’ASCII. Avec Échapper le non-ASCII en \u activé, le même texte devient :
"Caf\u00e9 \u6771\u4eac"
En français, chaque lettre accentuée devient ainsi un code : é donne \u00e9, è \u00e8, à \u00e0 et ç \u00e7. Les caractères situés hors du plan multilingue de base, comme la plupart des emoji, s’écrivent avec deux codes (une paire de substitution). Un visage souriant devient "\ud83d\ude00". Tout analyseur JSON retransforme ces codes en caractères d’origine.
Sans les guillemets extérieurs
Désactivez Entourer de guillemets quand la chaîne va dans un template, un champ de formulaire ou une paire de guillemets existante. Le texte Tab suivi d’une tabulation et de here donne alors :
Tab\there
Comment ça marche
L’outil utilise le JSON.stringify du navigateur, donc l’échappement suit exactement la norme JSON. Avant cela, si Compacter le JSON d’abord est activé et que la saisie commence par { ou [, il essaie de la lire comme du JSON. Si cela fonctionne, le JSON est réécrit sans espaces, en gardant les nombres exactement comme vous les avez écrits. Puis tout le texte est échappé en une seule chaîne. Rien n’est envoyé à un serveur.
Conseils et limites
- Le résultat est une chaîne JSON, pas un littéral de template JavaScript ni une chaîne de shell. Les shells et certains langages demandent leurs propres guillemets en plus.
- Si vous repassez le résultat dans l’outil, vous obtenez une chaîne doublement échappée. C’est parfois ce qu’attend une API, mais c’est en général le signe d’un bug.
- Les très grandes saisies ne posent pas de problème. Le travail se fait localement et la vitesse dépend de votre appareil.
Autres méthodes
JavaScript. JSON.stringify(text) renvoie la chaîne échappée. Pour intégrer un objet, utilisez JSON.stringify(JSON.stringify(obj)).
Python. json.dumps(text) fait de même pour une chaîne. Passez ensure_ascii=False pour garder les caractères non ASCII tels quels, car par défaut ils sont échappés, accents français compris.
jq. jq -Rs . file.txt lit tout un fichier en texte brut et l’affiche sous forme d’une seule chaîne JSON.
Outils associés
Pour retransformer une chaîne échappée en texte ou en JSON lisible, utilisez JSON unstringify. Pour vérifier ou indenter d’abord le JSON, utilisez le formateur JSON. Pour construire du JSON à partir d’un tableur, utilisez le convertisseur CSV en JSON.