Anche se ho visto i metodi suggeriti usati e di lavoro, credo che l'impostazione del valore di un campo nascosto utilizzando solo il JSON.stringify rompe il codice HTML ...
Qui ti spiego cosa intendo:
<input type="hidden" value="{"name":"John"}">
come si può vedere il primo doppio apice dopo la parentesi a catena aperta potrebbe essere interpretato da alcuni browser come:
<input type="hidden" value="{" rubbish >
Così, per un migliore approccio a questo ho suggerirei di utilizzare la funzione codecURIComponent. Insieme al JSON.stringify abbiamo shold abbiamo qualcosa di simile al seguente:
> encodeURIComponent(JSON.stringify({"name":"John"}))
> "%7B%22name%22%3A%22John%22%7D"
Ora che valore può essere immagazzinata in modo sicuro in un tipo nascosto di input in questo modo:
<input type="hidden" value="%7B%22name%22%3A%22John%22%7D">
o (meglio ancora) utilizzando la dati- attributo dell'elemento HTML manipolato dallo script che consumerà i dati, in questo modo:
<div id="something" data-json="%7B%22name%22%3A%22John%22%7D"></div>
Ora per leggere i dati di nuovo siamo in grado di fare qualcosa di simile:
> var data = JSON.parse(decodeURIComponent(div.getAttribute("data-json")))
> console.log(data)
> Object {name: "John"}
lo vedono troppo: http://stackoverflow.com/questions/11118947/jquery-equivalent-for-json-stringify –