J'ai besoin de mettre un objet JSON dans un attribut sur un élément HTML. Disons que c'est un <div>
(il n'a pas d'importance). Voici quelques remarques importantes:
- Le HTML ne permet pas de valider.
- L'objet JSON pourrait être n'importe quelle taille (c'est à dire énorme).
- Que faire si le JSON contient des caractères spéciaux? (par exemple,
{test: '<"myString/>'}
) - J'ai besoin d'être en mesure d'écrire JSON dans le code HTML à l'aide de PHP sur la page de la charge, et de façon dynamique avec JavaScript.
Le principal problème est que les caractères spéciaux qui pourraient briser le code HTML. Donc, si j'avais un attribut comme ceci:
<div json="{test:'<"myString/>'}"> TESTING </div>
Quelle est la meilleure façon d'encoder au format JSON afin de ne pas casser quoi que ce soit?
EDIT DE PROGRÈS À CE JOUR:
Dans mon PHP, j'construire la balise HTML comme ceci:
<div id="mydiv" data-json="
<?php echo htmlentities(json_encode($dataArray)) ?>
"> TESTING </div>
Tout semble bon dans le code HTML, comme prévu. Caractères spéciaux échappé.
Ensuite dans mon jQuery, comment puis-je les récupérer et de l'évaluer comme un objet nouveau?
var data = $.parseJSON($(this).attr('data-json'));
Firebug Erreur: JSON.parse:: nom de la propriété ou '}'
Si je puis changer le JSON et souhaitez écrire à l'aide de jQuery, je peux juste écrire de nouveau normalement sans codage bonne à rien? Ne qui fonctionnent vraiment?