76

Lo siento por mi hospitalización, pero después de algunas semanas quedándome hasta tarde y simplemente poniendo mi web en línea, simplemente no me queda energía para depurar ... Simplemente no puedo buscar cómo implementar Google JSON en IE6 IE7 & ... estoy usandoJSON en IE6 (IE7)

JSON.stringify(...) 

por lo que entiendo JSON no se construye en el IE6-7 y tiene que ser añadido en forma dinámica en línea de código ... ¿cómo se hace ¿ese?

Ya tengo jQuery: ¿entiendo que su motor JSON depende del navegador nativo?

¿Algún comentario sobre el código JSON no válido que hace que IE6-7 falle, pero pensé que no era nativo en IE6-7?

¿Alguien?

Respuesta

103

Desde desea utilizar el método JSON.stringify, tendrá que incluir el JSON3 parser con el fin de apoyarlo en IE 8. <

Esta biblioteca cumple con los métodos estándar de la especificación ECMAScript 5ª edición y comprueba si hay una implementación nativa disponible, entonces en el navegador moderno se usará esta implementación nativa.

+0

thx - Necesito el código para incluirlo dinámicamente * en IE6/7 solamente * (es decir, también es necesaria la detección del navegador) –

+1

o estoy malentendido - tal vez no lo necesito dinámicamente ya que JSON usa navegador nativo si disponible, entonces es solo un en el encabezado? –

+2

@David, simplemente podría incluirlo en sus páginas, y si el navegador admite el objeto global JSON, no hará nada, o si lo desea, podría incluirlo dinámicamente solo 'if (typeof JSON == 'undefined') ' – CMS

2

Debe haber algo mal entendido. La notación de objeto ha estado en JavaScript desde hace un tiempo (hasta donde yo entiendo, es un concepto básico de JavaScript). Quiero decir, la capacidad de escribir código como var o= {a:"b"};
Por lo tanto, si puede hacerlo, también puede llamar al eval('var o= {a:"b"};') y esa es la forma en que "implementa JSON" en cualquier navegador.

ACTUALIZACIÓN: Vuelve a leer tu publicación y finalmente entiendes que el problema es serializar objetos, no deserializarlos. Luego puede usar la biblioteca JavaScript para eso: https://github.com/douglascrockford/JSON-js/blob/master/json2.js

+1

emm ... ¿por qué eval()? –

+0

@David, creo que esa es la única opción que tiene si recibe datos JSON de algún origen de datos externo. ¿No es así? – naivists

+0

Tengo un poco de miedo de escribir manualmente: una fuente de error más ... –

1

"código en línea añadido dinámicamente" está utilizando la funcionalidad provista por la biblioteca Douglas Crockfords json2, o la propia implementación de jQuery si la versión del navegador no lo admite de forma nativa.

jQuery no depende de ninguna funcionalidad de decodificación JSON proporcionada por el navegador. Si el navegador admite la decodificación JSON, jQuery lo usará.

+0

Aceptar el uso de jQuery sería genial, ya que ya está incluido, pero ¿por qué no funciona JSON.stringify (...) en IE6-7? ¿Hay alguna sintaxis especial para JQuery JSON? –

+0

JSON.stringify funciona en IE6-7, siempre que haya añadido la secuencia de comandos: \ – Matt

+0

jQuery JSON funciona de la siguiente manera: 'jquery.parseJSON (str)' – Matt

2

Solo incluya json2.js en su archivo para jugar con JSON. También funcionará en IE 9.

Cuestiones relacionadas