2009-11-24 16 views
20

Preguntas rápidas que probablemente sean un pedazo de pastel para que alguien más las sepa.objeto JSON en IE6 - ¿Cómo?

Tengo un sitio web asp.net simple que utiliza JSON para un montón de cosas (y JSON.stringify)

Todo bien en Firefox, etc, sin embargo, en IE6 me encuentro con un error con JSON siendo indefinido.

¿Existe alguna manera de incluir una implementación JSON sin romper lo que ya tengo (usando los objetos nativos JSON en los otros navegadores). Si es así, ¿cómo?

Gracias!

+0

¿Qué es lo que estás usando? http://json.org/json2.js? –

+0

¿O no está utilizando ninguna biblioteca y espera que 'JSON.stringify' exista? –

+0

parece que podría estar confiando en el soporte nativo de JSON en el navegador, si funciona en Firefox y no en IE - https://developer.mozilla.org/en/Using_JSON_in_Firefox –

Respuesta

33

La biblioteca json2 en https://github.com/douglascrockford/JSON-js es exactamente lo que está buscando. Puede incluirlo incondicionalmente, y agrega JSON.parse y JSON.stringify a su espacio de nombres global (solo si aún no hay uno definido). No se meterá con ningún JSON incorporado. Desde su fuente:

if (!this.JSON) { 
    this.JSON = {}; 
} 
... 
if (typeof JSON.stringify !== 'function') { 
... 
if (typeof JSON.parse !== 'function') { 

¡Eso es completo! Incluso si por alguna razón ya tiene JSON.stringify pero no JSON.parse (o viceversa), seguirá haciendo lo correcto, dejando los originales en su lugar.

+6

El enlace arroja el error atm. Así que aquí hay una copia de seguridad https://github.com/douglascrockford/JSON-js – Jafin

4

Su versión de firefox podría estar teniendo compatibilidad incorporada para la biblioteca JSON. Pero, idealmente, debería incluir la biblioteca JSON js de json.org (haga una copia en su dominio alojado).

+0

Sí y creo que las versiones recientes de la biblioteca json detectan si hay un json nativo para usar. – Nosredna

0

Simplemente compruebe JSON.stringify y si no existe, utilice algún otro método para analizar datos en una cadena JSON.

2

También me encontré con este problema, puede cargar json2.js antes de usar JSON. consulte este link.