2010-10-20 3 views
9

Probabilmente, una domanda semplice, a cui non riesco a trovare una risposta solida.JSON2 vs jquery-json

Perché scegliere JSON2 su plug-in jquery-json ( http://code.google.com/p/jquery-json/)? Dato che un'applicazione web utilizza jQuery per cominciare.

Tutti scrivono su quanto sia bello che JSON2 ricada sull'implementazione nativa ... Bene, così fa jquery-json. Accolgo con favore collegamenti a blog, articoli ed esempi. Tuttavia, sto cercando una risposta solida e solida su quale sia meglio usare e perché.

Grazie!

risposta

10

Una differenza importante tra i due è che l'API di JSON2 è esattamente la stessa della api nativa mentre jquery-json è un plug-in jquery (che è leggermente diverso dal ricadere sull'implementazione nativa).

Direi che la risposta dipende da quale API si desidera utilizzare poiché otterrete gli stessi risultati con entrambe le implementazioni (dovreste almeno).

Come esperimento mentale, immaginiamo che ogni browser abbia un'implementazione nativa di API JSON. Useresti ancora jquery-json?

In tal caso, utilizzare il plug-in jQuery.

In caso contrario, perché collegare il codice all'API jquery-json quando l'API nativa è già nota (anche se non è implementata globalmente)?

Se questo significa qualcosa per te, John Resig (il creatore di jQuery) has said "Nel frattempo PREGA avviare la migrazione delle applicazioni JSON-utilizzando oltre alle json2.js di Crockford"

+1

Buon pensiero. Se tutti i browser fossero dotati di API JSON nativa, NON userei alcun plugin. Permettetemi di dare un'occhiata a quel link al blog di John. – Dimskiy

+0

Penso che la risposta richieda diverse letture finché non si ottiene che json2.js implementa l'API nativa e che jquery-json no. – Carl

2

maggior parte dei browser moderni hanno native JSON costruire in , jQuery imposta automaticamente tali funzioni quando si utilizza eg $.getJSON() o $.parseJSON().

Quindi, se si utilizza jQuery, non è necessario alcun plugin/libreria per JSON.

+0

La maggior parte delle volte utilizzo la funzione $ .ajax(), quindi ho bisogno di serializzare/deserializzare un po 'manualmente. – Dimskiy

+3

Non è necessario deserializzare i dati se si imposta la proprietà dataType dell'oggetto di configurazione che si è passato a '$ .ajax()' –

+1

@Ken Browning - Stavo ricevendo i miei dati da un servizio asmx. Quindi era preceduto da "d" di Microsoft. Dovevo fare qualcosa come $ .evalJSON (resultData.d) con il plugin jquery-json. È stato qualche tempo fa, però. Attualmente sto cercando di valutare alcune domande/problemi relativi all'interfaccia utente per un progetto imminente. Grazie per il suggerimento. – Dimskiy

16

Autore di jquery-json qui. Non importa molto. Ho fatto jQuery-Json molto tempo fa, quando non c'erano buone opzioni e lo tenevo lì perché a molte persone piace.

Sono entrambi una manciata di funzioni che fanno quasi la stessa cosa.

+1

Grazie per la risposta! – Dimskiy