Ce que veut dire « unstringify »
Quand du JSON est stocké dans une chaîne, chaque guillemet double y est écrit \", chaque saut de ligne \n et chaque barre oblique inverse \\. On le voit dans les fichiers journaux, les files de messages, les charges de webhooks, les outils de développement du navigateur et les colonnes de base de données qui contiennent du JSON sous forme de texte. C’est valide, mais difficile à lire :
"{\"name\":\"Ada\",\"tags\":[\"admin\",\"dev\"]}"
Déséchapper (unstringify) inverse l’échappement et rend la valeur d’origine. Si cette valeur est du JSON, l’outil la formate aussi pour que vous puissiez la lire.
Mode d’emploi
- Collez la chaîne échappée dans la zone de gauche, appuyez sur Ouvrir un fichier ou sur Exemple.
- Le résultat apparaît à droite pendant la frappe.
- Réglez les options :
- Déséchapper les chaînes imbriquées continue quand le résultat est lui-même une autre chaîne échappée. Activé par défaut.
- Si le résultat est du JSON vous laisse choisir une indentation de 2 ou 4 espaces, ou Laisser tel quel.
- Appuyez sur Copier, ou sur Télécharger pour enregistrer le résultat en fichier texte.
La ligne sous les zones indique si le résultat est un JSON valide et combien de couches ont été déséchappées.
Exemples
La chaîne ci-dessus, avec Si le résultat est du JSON réglé sur 2 espaces, devient :
{
"name": "Ada",
"tags": [
"admin",
"dev"
]
}
Un texte échappé sans guillemets extérieurs fonctionne aussi. Cette saisie :
Line one\nLine two\t(tabbed)
donne deux lignes, avec une vraie tabulation avant (tabbed) :
Line one
Line two (tabbed)
Les échappements Unicode sont décodés. "Caf\u00e9" donne Café, et un texte français échappé en ASCII comme "L'\u00e9t\u00e9" redevient L'été.
Les chaînes doublement encodées
Parfois, les données ont été transformées deux fois en chaîne. Les barres obliques s’accumulent :
"\"{\\\"event\\\":\\\"signup\\\",\\\"user\\\":7}\""
Avec Déséchapper les chaînes imbriquées activé, l’outil déséchappe les deux couches et indique « 2 couches déséchappées. ». Avec Laisser tel quel sélectionné, le résultat est :
{"event":"signup","user":7}
Avec Déséchapper les chaînes imbriquées désactivé, il s’arrête après une couche et vous voyez la chaîne intérieure, toujours échappée :
"{\"event\":\"signup\",\"user\":7}"
C’est utile quand vous voulez voir exactement ce que contenait chaque couche.
Messages d’erreur
Si la saisie n’est pas une chaîne JSON valide, vous obtenez la ligne et la colonne du problème. Exemples réels :
| Saisie | Message |
|---|---|
"bad \q escape" |
Ligne 1, colonne 6 : Séquence d'échappement non valide \q |
He said "hi" |
Ligne 1, colonne 9 : Un guillemet double non échappé en \" a été trouvé |
"unterminated |
Ligne 1, colonne 1 : Chaîne non terminée : le guillemet double fermant manque |
Le JSON n’autorise que ces échappements : \", \\, \/, \b, \f, \n, \r, \t et \u suivi de quatre chiffres hexadécimaux. Les échappements d’autres langages, comme \x41 ou \', ne sont pas du JSON valide. Appuyez sur Afficher dans l’entrée pour aller au problème.
Comment ça marche
L’outil lit votre saisie comme un littéral de chaîne JSON, en ajoutant les guillemets extérieurs s’ils manquent. Il décode les échappements selon les règles du JSON. Si le résultat commence par un guillemet double et est lui-même une chaîne JSON valide, et que Déséchapper les chaînes imbriquées est activé, il décode de nouveau. Enfin, si le résultat est un objet ou un tableau JSON, il est formaté avec l’indentation choisie. Les nombres qu’il contient sont gardés exactement tels quels. Tout se passe dans votre navigateur.
Conseils
- Si le résultat n’est pas un JSON valide, il s’affiche en texte brut, ce qui est correct pour des chaînes qui n’ont jamais été du JSON.
- Copiez une valeur directement depuis une ligne de journal, guillemets compris, pour ne pas oublier un caractère à l’une ou l’autre extrémité.
- Si des caractères
\rparasites apparaissent dans le résultat, le texte d’origine avait des fins de ligne Windows.
Autres méthodes
JavaScript. JSON.parse(str) décode une couche. Rappelez-le sur le résultat pour une valeur doublement encodée, puis JSON.stringify(value, null, 2) pour la formater.
Python. json.loads(s) décode une chaîne JSON. Pour une chaîne doublement encodée, appelez-le deux fois.
jq. jq -r . file.json affiche une chaîne JSON en texte brut, et jq 'fromjson' analyse une chaîne qui contient du JSON.
Outils associés
Pour faire l’inverse et échapper un texte en chaîne JSON, utilisez JSON stringify. Pour valider ou reformater le résultat, utilisez le formateur JSON. Pour le transformer en YAML, utilisez le convertisseur JSON en YAML.