2010-10-20 15 views
9

Probablemente, una pregunta simple, que no puedo encontrar una respuesta sólida.JSON2 frente a jquery-json

¿Por qué elegir JSON2 sobre el plugin jquery-json ( http://code.google.com/p/jquery-json/)? Dado que una aplicación web está usando jQuery para empezar.

Todo el mundo está escribiendo sobre lo bueno que es que JSON2 vuelva a la implementación nativa ... Bueno, también lo hace jquery-json. Acepto enlaces a blogs, artículos y ejemplos. Sin embargo, estoy buscando una sólida respuesta sólida sobre cuál es mejor usar y por qué.

Gracias!

Respuesta

10

Una diferencia importante entre los dos es que la API de JSON2 es exactamente la misma que la API nativa, mientras que jquery-json es un plugin jquery (lo cual es ligeramente diferente de recurrir a la implementación nativa).

Yo diría que su respuesta depende de la aplicación que desee utilizar, ya que obtendrá los mismos resultados con cualquiera de las implementaciones (al menos debería hacerlo).

Como un experimento de pensamiento, imaginemos que cada navegador tiene una implementación nativa de api JSON. ¿Seguirías usando jquery-json?

Si es así, utilice el complemento jquery.

Si no, ¿por qué vincularía su código a la API jquery-json cuando la API nativa ya es conocida (incluso si no está implementada globalmente)?

Si significa nada para ti, John Resig (el creador de jQuery) has said "Mientras tanto tiene que iniciar la migración de las aplicaciones JSON-usando a json2.js de Crockford"

+1

Buena idea. Si todos los navegadores tuvieran una API nativa de JSON, NO usaría ningún complemento. Déjame echar un vistazo a ese enlace al blog de John. – Dimskiy

+0

Creo que la respuesta requiere varias lecturas hasta que uno obtiene que json2.js implemente la API nativa y que jquery-json no lo haga. – Carl

2

La mayoría de los navegadores modernos tienen native JSON construcción en , jQuery se predetermina a esas funciones cuando usa, por ejemplo $.getJSON() o $.parseJSON().

Si está utilizando jQuery, no necesita ningún complemento/biblioteca para JSON.

+0

La mayoría de las veces, uso la función $ .ajax(), así que necesito serializar/deserializar de forma manual. – Dimskiy

+3

No debería necesitar deserializar sus datos si establece la propiedad dataType del objeto de configuración que pasa en '$ .ajax()' –

+1

@Ken Browning - Obtenía mis datos de un servicio de asmx. Por lo tanto, estaba prefijada con la "d" de Microsoft. Tuve que hacer algo como $ .evalJSON (resultData.d) con el plugin jquery-json. Eso fue en algún momento de regreso, sin embargo. Actualmente estoy tratando de evaluar algunas preguntas/problemas relacionados con la interfaz de usuario para un próximo proyecto. Gracias por la sugerencia. – Dimskiy

16

Autor de jquery-json aquí. Realmente no importa mucho. Hice jquery-json hace mucho tiempo cuando no había buenas opciones, y lo mantengo allí porque a mucha gente le gusta.

Son las dos funciones que hacen casi lo mismo.

+1

¡Gracias por la respuesta! – Dimskiy