ForHosting KIT · Outils pour développeurs

Echappement chaine JSON

Say "hello", un retour à la ligne et world deviennent Say \"hello\"\nworld : trois échappements, prêt à coller entre guillemets doubles sans casser le document autour. L'outil remet aussi un texte échappé en caractères normaux. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Texte
Say "hello" world
Mode de calcul
Encode
Vous obtenez
Résultat
Say \"hello\"\nworld
Encodage
json_string
Longueur de l'entrée
17
Longueur de la sortie
20

Le chemin est pleinement déterministe : le même texte et le même mode produisent toujours le même résultat, sans appels réseau, sans sels aléatoires et sans raccourcis dépendant de la date. Les contrôles simples incluent l'encodage d'une ligne contenant un guillemet et une nouvelle ligne en forme échappée, et le décodage d'un chemin à doubles barres en séparateurs réels.

Pourquoi un seul guillemet peut casser tout un document

Dans un document de données, chaque texte est encadré de guillemets doubles, et le premier guillemet non échappé le referme. Un guillemet qui fait partie du texte s'écrit donc avec une barre oblique inverse devant, la barre oblique inverse est doublée puisqu'elle sert de marque d'échappement, et les caractères de contrôle, comme les retours à la ligne et les tabulations, ne peuvent pas apparaître tels quels. Dans l'exemple, Say "hello", un retour à la ligne et world demandent trois échappements, deux guillemets et le retour, si bien que 17 caractères deviennent 20. Collez le résultat entre vos guillemets et le document reste intact.

Revenir au texte normal, et les erreurs repérées

Le décodage fait l'inverse : il lit les formes courtes habituelles du guillemet, de la barre oblique inverse, de la barre oblique, du retour arrière, du saut de page, du retour à la ligne, du retour chariot et de la tabulation, ainsi que la forme barre oblique inverse, u et quatre chiffres, et vous rend les vrais caractères. Un chemin de fichier écrit avec des barres obliques inverses doublées revient avec des séparateurs simples. Si le texte contient une séquence incomplète, une paire non autorisée, un guillemet isolé ou un caractère de contrôle brut, l'outil s'arrête avec un message au lieu de laisser passer l'erreur. Le même texte avec la même option donne toujours le même résultat.

Quels caractères sont échappés en encode ?

Encode réécrit le guillemet double, la barre oblique inverse, le retour arrière, le saut de page, la nouvelle ligne, le retour chariot, la tabulation et tout autre contrôle en U+0000–U+001F comme \uXXXX. Les autres caractères restent inchangés.

Le résultat est-il déterministe ?

Oui. Le même texte et le même mode produisent toujours le même résultat, sans réseau, sans aléatoire ni comportement dépendant de la date.

L'outil ajoute-t-il les guillemets extérieurs ?

Non. Il renvoie uniquement le contenu placé entre les guillemets : les guillemets d'ouverture et de fermeture de votre document restent tels quels. Pour décoder, collez aussi uniquement ce qui se trouve à l'intérieur.

Comment s'écrit un retour à la ligne entre les guillemets ?

Sous la forme d'une barre oblique inverse suivie de n. La tabulation devient barre oblique inverse et t, le retour chariot barre oblique inverse et r ; les caractères de contrôle sans forme courte s'écrivent avec barre oblique inverse, u et quatre chiffres hexadécimaux.

Pourquoi mon texte est-il refusé au décodage ?

Parce qu'il contient un élément interdit dans une chaîne échappée valide : une séquence incomplète, une barre oblique inverse suivie d'une lettre non autorisée, un guillemet double isolé ou un caractère de contrôle brut. L'outil s'arrête et le signale au lieu de deviner.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/enc/json-string-escape

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/enc/json-string-escape \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Say \"hello\"\\n"}'
{
  "text": "Say \"hello\"\\n"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.json_string_escape",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Cet outil d'échappement de chaînes JSON convertit le texte brut en la forme échappée exigée à l'intérieur d'une valeur de chaîne JSON, et inverse le même mapping lorsque vous collez un contenu échappé pour retrouver des caractères ordinaires. L'encodage réécrit les guillemets doubles, les barres obliques inverses et les caractères de contrôle afin qu'une charge construite à la main, un modèle ou une ligne de journal puisse s'insérer en toute sécurité entre guillemets JSON sans casser le document. Le décodage accepte les échappements JSON standard — guillemet, barre oblique inverse, barre optionnelle, formes courtes de retour arrière, saut de page, nouvelle ligne, retour chariot et tabulation, ainsi que les échappements u à quatre chiffres — et échoue explicitement sur les séquences incomplètes, les paires de barre illégales, les guillemets doubles bruts dans le contenu ou les contrôles non échappés, afin que les fautes de frappe ne passent pas silencieusement en production.

Ce qu'est l'échappement de chaînes JSON et ce que renvoie cet outil

Un guillemet double littéral doit apparaître comme paire barre-guillemet, une barre oblique inverse littérale doit être doublée, et chaque caractère de contrôle de U+0000 à U+001F doit s'écrire en échappement court lorsqu'il existe, sinon en échappement u à quatre chiffres. Une valeur de chaîne JSON est délimitée par des guillemets doubles, et les caractères autorisés entre ces guillemets sont contraints par ECMA-404 et par les règles courantes de JSON.stringify dans tous les langages. Cette page implémente cet ensemble d'encodage sur la voie encode et l'inverse sur decode : la réponse est uniquement le contenu de la chaîne, sans ajouter ni retirer les guillemets extérieurs d'un document JSON complet. Contrairement à un analyseur JSON complet, cette page ne valide pas les objets, tableaux, nombres ni structures imbriquées ; elle répond seulement au contrat d'échappement du contenu de chaîne. La réponse JSON inclut toujours result pour la chaîne transformée, mode qui répète encode ou decode, encoding fixé à json_string, et input_length plus output_length pour que les tests puissent affirmer les tailles. Encode signale aussi escapes_applied et decode signale escapes_resolved pour confirmer combien de caractères spéciaux ou de séquences d'échappement ont été réécrits. Il n'y a pas d'omission silencieuse partielle d'une séquence cassée : chaque paire avec barre est du JSON légal, ou la requête échoue avec invalid_input.

Comment text et mode sont lus et comment les résultats restent reproductibles

Decode cherche les séquences menées par une barre : guillemet, barre oblique inverse, barre, les cinq formes courtes de contrôle, et u suivi d'exactement quatre chiffres hexadécimaux. Le champ préféré du payload est text, avec les alias input, value, s et payload, afin que formulaires, chaînes de requête et clients SDK réutilisent le même contrat sans renommer les colonnes. Mode vaut encode par défaut et accepte decode explicitement ; les alias op, direction et action mappent vers le même commutateur pour les scripts qui utilisent déjà ces noms, et escape ou unescape sont acceptés comme synonymes. Encode parcourt la chaîne par unités de code UTF-16 et ne remplace que les caractères que JSON exige d'échapper, en laissant lettres, chiffres et Unicode ordinaire inchangés pour que le texte lisible le reste. Comme la barre oblique inverse est réécrite dans le même passage de gauche à droite que les guillemets et les contrôles, vous obtenez un seul passage d'échappement cohérent avec les règles de caractères de JSON.stringify pour le contenu de chaîne. Une barre finale incomplète, un échappement court hors ensemble JSON, un échappement u sans quatre hexadécimaux, un guillemet double brut ou un contrôle non échappé lève invalid_input avec un message qui nomme le problème. Le plafond de cent mille caractères garde la mémoire du Worker prévisible tout en couvrant modèles, charges d'exemple et la plupart des presse-papiers. Associez l'exécution gratuite dans le navigateur sur cette page à l'API tarifée lorsque vous avez besoin du même mapping dans un pipeline automatisé sans réimplémenter vous-même les tables d'échappement JSON. Les entrées invalides renvoient invalid_input et ne sont pas facturées, ce qui maintient la validation peu coûteuse tandis que les transformations réussies restent à un prix fixe par élément de $0.002.

Où l'échappement et le déséchappement de chaînes JSON s'insèrent dans les flux de développement

Les auteurs de pipelines décodent des exportations lourdes d'échappements issues de systèmes hérités pour que le code applicatif travaille avec de vraies nouvelles lignes et guillemets plutôt qu'avec des séquences littérales barre-n. Associez-le à l'encodage percentuel d'URL ou aux aides d'entités XML pour des transformations de texte plus larges, et à d'autres points d'accès d'encodage lorsque vous construisez un petit laboratoire d'outils gratuits et déterministes pour la CI et la documentation. Les équipes frontend et backend encodent titres et libellés dynamiques avant de les placer dans un champ JSON entre guillemets, afin qu'un seul guillemet, une barre oblique inverse ou une nouvelle ligne ne puisse casser le document environnant. Les ingénieurs qualité génèrent des paires déterministes encode et decode pour des tests de contrat, afin qu'un middleware prétendant prendre en charge les chaînes JSON ne bascule pas silencieusement vers une table d'échappement non standard entre versions. Les éducateurs utilisent le même outil pour enseigner la différence entre un document JSON complet, une valeur de chaîne JSON et le petit ensemble d'échappements autorisés par la spécification dans cette valeur. Sur cette page le travail s'exécute entièrement dans votre navigateur ; via l'API chaque consultation réussie coûte $0.002, l'échec de validation n'est pas facturé et rien n'est stocké après la réponse. Cette séparation — exploration interactive gratuite et API au prix identique — correspond au reste du catalogue KIT de niveau A et vous permet de passer d'une démonstration de cours à un pipeline automatisé sans changer le résultat échappé.

Contenu sûr dans les champs JSON

Échappez titres, messages et extraits utilisateur pour que guillemets, barres obliques inverses et nouvelles lignes ne cassent pas une valeur de chaîne JSON construite à la main ou par modèle.

Nettoyage de fixtures et de journaux

Décodez les échappements de chaînes JSON issus de journaux, d'exports ou de fichiers golden pour retrouver de l'Unicode plain pour des diffs lisibles et du code applicatif.

Paires déterministes pour la CI

Générez des paires encode et decode reproductibles pour tests unitaires, contrôles de contrat et middleware devant respecter les règles de chaîne de JSON.stringify.

Combien coûte l'échappement de chaînes JSON ?

C'est gratuit dans votre navigateur sur cette page. Via l'API une requête réussie coûte $0.002 ; les entrées invalides ne sont pas facturées.

Quels modes sont pris en charge ?

mode=encode (par défaut) transforme le texte brut en échappements de chaîne JSON. mode=decode ramène ces échappements en caractères.

Que se passe-t-il si un échappement est incomplet ou illégal ?

Decode échoue avec invalid_input. Barres isolées, lettres d'échappement non JSON, formes \u incorrectes, guillemets bruts et contrôles non échappés sont rejetés.

Consulter la documentation complète du KIT →