Bien que j'ai vu les méthodes proposées et utilisées de travail, je pense que la mise en valeur d'un champ caché en utilisant uniquement les JSON.stringify brise le HTML ...
Ici, je vais vous expliquer ce que je veux dire:
<input type="hidden" value="{"name":"John"}">
comme vous pouvez le voir le premier guillemet après le support de chaîne ouverte pourrait être interprétée par certains navigateurs comme:
<input type="hidden" value="{" rubbish >
donc, pour une meilleure approche à ce que je suggérerait d'utiliser la fonction encodeURIComponent. En collaboration avec le JSON.stringify nous Shold avons quelque chose comme ce qui suit:
> encodeURIComponent(JSON.stringify({"name":"John"}))
> "%7B%22name%22%3A%22John%22%7D"
Maintenant que la valeur peut être stocké en toute sécurité dans une entrée de type caché comme ceci:
<input type="hidden" value="%7B%22name%22%3A%22John%22%7D">
ou (encore mieux) en utilisant la Data- attribut de l'élément HTML manipulé par le script qui consommera les données, comme ceci:
<div id="something" data-json="%7B%22name%22%3A%22John%22%7D"></div>
maintenant, pour relire les données que nous pouvons faire quelque chose comme:
> var data = JSON.parse(decodeURIComponent(div.getAttribute("data-json")))
> console.log(data)
> Object {name: "John"}
voir aussi: http://stackoverflow.com/questions/11118947/jquery-equivalent-for-json-stringify –