Qu'est-ce que je dois échapper à mon HTML (réponse JSON)

Ma réponse JSON ressemble à:

{rc: "200", test: "", user: "<div class='sub1'> <div class='avatar'> <a href='/blah'>blah</a><br /> <strong>0</strong> </div> <div class='sl'> <p> you droppped the ball this time </p> </div> <div class='clear'> </div> </div>"} 

Mettre à jour

J'ai mis à jour mon code pour mettre des citations sur les valeurs des clés, ne fonctionne toujours pas:

 {"rc": "200", "m" : "", "o": "<div class='s1'> <div class='avatar'> <a href='\/asdf'>asdf<\/a><br \/> <strong>0<\/strong> <\/div> <div class='sl'> <p> 444444444 <\/p> <\/div> <div class='clear'> <\/div> <\/div>"} 

J'ai utilisé jsonlint pour valider votre dernier exemple, et les sauts de ligne sont ce qu'il a signalé. Lorsqu'ils ont été retirés, ils ont été validés.

 { "rc": "200", "m" : "", "o": "<div class='s1'><div class='avatar'><a href='\/asdf'>asdf<\/a><br \/><strong>0<\/strong> <\/div> <div class='sl'><p>444444444<\/p><\/div><div class='clear'><\/div><\/div>" } 

Dans votre exemple, vous n'aurez plus à échapper à rien. Mais, si le HTML est livré avec des guillemets, vous devrez les échapper, évidemment.

Les valeurs HTML sont correctes, mais les clés de l'objet JSON doivent être placées entre guillemets.

De la RFC JSON :

2.2. Objets

Une structure d'objet est représentée par une paire de crochets
Entourant zéro ou plus de paires nom / valeur (ou membres). Un nom est un
chaîne.

et

2.5. Cordes

La représentation des chaînes est similaire aux conventions utilisées dans le C
Famille de langages de programmation. Une chaîne commence et se termine par
guillemets.

En outre, si vous envoyez cet objet JSON à l'intérieur des balises de script d'une page HTML, vous devez échapper à la séquence "</" des balises de fermeture HTML, selon cette annexe dans la spécification HTML 4 .

Vous n'avez pas besoin d'échapper au HTML dans une chaîne de javascript. Qu'est-ce que vous essayez de faire exactement / quel est le problème? Jetez un oeil à la fonction escape() – cela pourrait vous aider.