J'essaie d'afficher des guillemets doubles, mais cela montre l'une des barres obliques inverses:
"maingame": {
"day1": {
"text1": "Tag 1",
"text2": "Heute startet unsere Rundreise \\\"Example text\\\". Jeden Tag wird ein neues Reiseziel angesteuert bis wir.</strong> "
}
}
Lors du rendu en html, il apparaît comme \"Example text\"
. Quelle est la bonne façon?
All characters may be placed within the quotation marks except for the characters that must be escaped
et ensuite précise:\" represents the quotation mark character (U+0022)
Quand et où utiliser à la
\\\"
place. OK si vous êtes comme moi, vous vous sentirez aussi idiot que moi quand j'ai réalisé ce que je faisais après avoir trouvé ce fil.Si vous créez un fichier / flux de texte .json et importez les données à partir de là, la réponse du flux principal d'une seule barre oblique inverse avant les guillemets doubles:
\"
est celle que vous recherchez.Cependant, si vous êtes comme moi et que vous essayez d'obtenir "Tryit Editor" de w3schools.com pour avoir des guillemets doubles dans la sortie du JSON.parse (texte), celui que vous recherchez est le triple barre oblique inverse entre guillemets
\\\"
. C'est parce que vous construisez votre chaîne de texte dans un HTML<script>
bloc, et les premiers inserts doubles backslash une seule barre oblique inverse dans la variable de chaîne alors le guillemet backslash suivant insère le guillemet dans la chaîne de sorte que la chaîne de script résultant contient\"
de la réponse standard et l'analyseur JSON analyseront cela comme juste les guillemets doubles.+1: étant donné qu'il s'agit d'une chaîne de texte JavaScript, un guillemet double à double barre oblique inverse
\\"
fonctionnerait également; parce que les guillemets doubles n'ont pas besoin d'être échappés dans une seule chaîne entre guillemets par exemple'\"'
et'"'
donnent la même chaîne JS.la source
Cela montre la barre oblique inverse, car vous échappez également à la barre oblique inverse.
Outre les guillemets doubles, vous devez également échapper les barres obliques inverses si vous souhaitez en inclure une dans votre chaîne entre guillemets JSON. Cependant, si vous avez l'intention d'utiliser une barre oblique inverse dans une séquence d'échappement, vous ne devez évidemment pas y échapper.
la source
Notez que cela se produit le plus souvent lorsque le contenu a été "double codé", ce qui signifie que l'algorithme de codage a été accidentellement appelé deux fois.
Le premier appel coderait la valeur "text2":
DE: Heute startet unsere Rundreise "Exemple de texte". Jeden Tag wird ein neues Reiseziel angesteuert bis wir.
À: Heute startet unsere Rundreise \ "Exemple de texte \". Jeden Tag wird ein neues Reiseziel angesteuert bis wir.
Un deuxième encodage le reconvertit ensuite, en échappant les caractères déjà échappés:
FROM: Heute startet unsere Rundreise \ "Exemple de texte \". Jeden Tag wird ein neues Reiseziel angesteuert bis wir.
À: Heute startet unsere Rundreise \\\ "Exemple de texte \\\". Jeden Tag wird ein neues Reiseziel angesteuert bis wir.
Donc, si vous êtes responsable de l'implémentation du serveur ici, assurez-vous qu'il n'y a pas deux étapes pour essayer de coder le même contenu.
la source
si vous souhaitez échapper aux guillemets doubles dans JSON, utilisez \\ pour y échapper.
exemple si vous voulez créer json d'objet javascript suivant
alors vous devez écrire de la manière suivante
si nous l'analysons en utilisant
JSON.parse()
le résultat sera
la source
Pour échapper aux barres obliques inverses qui causent des problèmes pour les données JSON, j'utilise cette fonction.
la source
Pour ceux qui souhaitent utiliser le PowerShell développeur. Voici les lignes à ajouter à votre settings.json:
la source