Pregunta

Duplicar: Serialización a JSON en jQuery

Parece que hay un serializador / deserializador JSON integrado en jQuery, ya que es capaz de implementar cosas como .getJSON. ¿Es posible usar el procesador jQuery JSON integrado en sí mismo, un procesador JSON de propósito general (es decir, hacer una llamada jQuery.something () para serializar / deserializar mis propios datos), eliminando la necesidad de una biblioteca JSON separada?

Actualización: las respuestas en la pregunta mencionada anteriormente dicen que no hay código de serialización JSON en jQuery. ¿Qué hay de deserialización JSON? ¿Cómo se implementa .getJSON y por qué no se expone la capacidad de deserialización para uso general?

Actualización2: ya estoy usando json2 de json.org, estoy tratando de deshacerme de él ya que todo lo que hago es una simple deserialización. ¿Suena como jquery realmente está haciendo eval? Tenía la impresión que no era tan buena para la seguridad :

  

La función eval es muy rápida.   Sin embargo, puede compilar y ejecutar.   Cualquier programa de JavaScript, así que no puede   ser problemas de seguridad

¿Fue útil?

Solución

jQuery solo usa eval () por ahora. jQuery 1.4 incluirá soporte para deserialización JSON nativa del navegador en los navegadores que lo admitan. Puede aprovechar eso ahora si lo desea, por usar la devolución de llamada dataFilter de jQuery para evitar la eval () cuando sea posible (colóquela en $ .ajaxSetup para afectar todas las llamadas $ .ajax (), $ .post (), $ .getJSON () automáticamente).

Otros consejos

Parece que lo que necesita es la implementación serializada / deserializada disponible en http: //www.json. org / js.html que proporciona JSON.parse () y JSON.stringify (), lo que facilita (des) serializar y validar datos.

Si simplemente desea traducir un texto JSON a un objeto, use la función eval ().

Acabo de comenzar a usar jQuery, y encuentro que es más fácil simplemente colocar la biblioteca JSON2.js de JSON.org, luego extender jQuery para usarla.

Creo que para deserializar los datos json entrantes jQuery just eval () 's it. Sin embargo, no sé de ninguna serialización incorporada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top