Converti oggetto in stringa JSON


Risposte:


188

jQuery esegue solo alcuni controlli regexp prima di chiamare il metodo del browser nativo window.JSON.parse(). Se non è disponibile, utilizza eval()o più esattamentenew Function() per creare un oggetto Javascript.

L'opposto di JSON.parse()è JSON.stringify()che serializza un oggetto Javascript in una stringa. jQuery non ha funzionalità proprie per questo, devi usare la versione integrata del browser o json2.jsda http://www.json.org

JSON.stringify() è disponibile in tutti i principali browser, ma per essere compatibile con i browser meno recenti è comunque necessario quel fallback.


4
questo può essere utile:var theObject = (typeof data == "string") ? jQuery.parseJSON(data) : data;
roberthuttinger

2
@tekretic: spero che tu stia trollando. Chrome implementa l' JSONoggetto host dal primo giorno.
gennaio

5
@ jAndy: Oh wow, scusa. Non trolling ma OH così sbagliato. Risulta che il supporto JSON nativo è stato aggiunto a WebKit a metà del 2009 , rendendolo supportato da Chrome 3.0. Il mio commento precedente, totalmente impreciso, era basato su metà di questa domanda obsoleta combinata con il CMS su cui sto lavorando al momento che in realtà sostituisce window.JSON con la sua libreria, il significato JSON.stringify()non è definito. Un vero fallimento sotto tutti i punti di vista.
Molomby


1
@jAndy: non confondermi; : JSON.stringify 'serializza' un oggetto, per favore dì che è solo un errore
halfbit

12

Utile anche Object.toSource () per scopi di debug, dove si desidera mostrare l'oggetto e le sue proprietà per scopi di debug. Questa è una funzione Javascript generica (non jQuery), tuttavia funziona solo nei browser "moderni".


4

Converti oggetti JavaScript in dati JSON

$("form").submit(function(event){
  event.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
  consol.log(jsonConvertedData);
});

È possibile convalidare i dati JSON utilizzando http://jsonlint.com


2

Puoi usare l'eccellente plugin jquery-Json:

http://code.google.com/p/jquery-json/

Rende facile la conversione da e verso oggetti Json.


2
Consiglia i metodi SPL rispetto alle librerie logiche aggiuntive.
David J Eddy,

2
SPL = Libreria PHP standard. Immagino che in questo caso sarebbe SJL (libreria javascript standard).
David J Eddy,

3
La domanda riguarda jQuery e Javascript. Non ha niente a che fare con PHP, librerie PHP o SPL.
George Filippakos

3
le librerie standard sono librerie standard; non importa la lingua. Il punto è che è meglio raccomandare una soluzione che insegni la lingua sulla sindrome di "usa questo plugin".
David J Eddy,

1
Esatto, perché reinventare la ruota ... usare le abilità standard di un linguaggio su un 'plugin' ma sto divagando.
David J Eddy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.