2010-11-17 7 views
1

J'ai un service renvoyant les résultats sous forme de chaîne JSON avec guillemet simple échappé. Ex: O\\\'Neill. Maintenant, lors de l'affichage, j'ai besoin de l'annuler pour dire O'Neill. J'ai essayé de remplacer la chaîne mais ne fonctionne pas et il lance une erreur de script - Attendu ")" quand j'ai essayé d'assigner le texte (HTML) à un DIV.Remplacer le guillemet simple échappé par guillemet simple

+1

La publication de code aiderait - vous avez probablement juste fait un typo quelque part dedans ... –

+2

Fixer le service ou réparer les données. Soit il retourne "O \\ 'Neill" et vous feriez mieux d'avoir des données de texte plutôt que cela ou vous avez "O \' Neill" qui est interdit dans JSON. N'essayez pas de nettoyer ce côté client. – Quentin

+0

Pourquoi le guillemet unique est-il échappé? – Gumbo

Répondre

0

Plutôt que d'y échapper côté serveur, pourquoi ne pas le remplacer par l'entité HTML '?

+2

Parce que, d'une manière générale, il est préférable d'avoir du texte brut que du HTML si vous n'avez pas besoin de la sémantique que le langage HTML exprime. Il est plus facile de convertir du texte à ce dont vous avez besoin, puis de convertir du HTML à ce dont vous avez besoin. – Quentin

+0

Bien que je suis d'accord avec l'approche globale. J'ai tendance à penser qu'une question étiquetée avec Javascript, jQuery et JSON finira par être rendue en HTML. –

2

Je ne fais que pratiquer mes pouvoirs psychiques ici ... mais votre code tente-t-il de remplacer "\" par ""? Si c'est le cas, rappelez-vous, vous devrez échapper à la barre oblique inverse (car c'est le char d'échappement en Javascript). Essayez de remplacer "\\" à la place.

Comme mentionné dans les commentaires, cependant, la meilleure solution serait le service. Il ne devrait pas y avoir besoin de \' dans JSON (et en fait, ce n'est pas JSON techniquement valide), car les valeurs devraient être entre guillemets (ce qui évite d'avoir à échapper un guillemet simple).

+0

Vous avez probablement identifié la source de son erreur * Expected ")" *. Maintenant ... à quoi je pense? – Stephen

+0

Dunno. La première pensée dans ma tête est que les citations magiques de PHP sont mauvaises. Je suis probablement encore dans le problème de Dave. :) – cHao