16

Estoy usando JSON.Stringify y JSON.parse en todas partes y funciona bien con Firefox. Ya no funciona con IE9 ni funciona en IE8. ¿Que puedo hacer?JSON.stringify y JSON.parse no funcionan en IE9?

+3

¿Puedes pegar algún código? – yoda

+0

vea más aquí cómo hacerlo con IE 8 http://stackoverflow.com/questions/3326893/json-stringify-supported-by-ie-8/10940623#10940623 – ggc

+0

vea más aquí http://stackoverflow.com/questions/3326893/json-stringify-supported-by-ie-8/10940623 # 10940623 – ggc

Respuesta

10

¿Por qué quiere depender del navegador que tiene el objeto en lugar de simplemente incluir el archivo de guión de Douglas Crockford .. Puede encontrar el archivo minifed aquí: http://www.json.org/js.html

Una vez importado que no tiene que preocuparse por el método de ABT existente en un navegador.

+0

Me parece mejor idea, pero qué archivo debo agregar. Hay muchos archivos https://github.com/douglascrockford/JSON-js –

+0

Use json2.js. Esa es la última ... Obtenga la 1 minificada si puede – Baz1nga

+0

¿quiere la menosificada? –

34

JSON.stringify comienza con una minúscula s. Ambos stringify y parse son available in IE8+, pero solo en standards mode.

Anteponga su documento con <!DOCTYPE html> si actualmente está utilizando el modo peculiar. Además, observe el uso de mayúsculas y minúsculas de los métodos JavaScript que llama; todos los incorporados comienzan con un carácter minúsculo.

+2

Solo para completar la respuesta: http://caniuse.com/#search=json –

+6

Además, ten cuidado si te estás desarrollando localmente en contra una dirección de localhost. Una actualización de Windows a IE9 hace unas semanas provocó que comenzara automáticamente usando el modo de compatibilidad para algunas direcciones de host locales, lo que puede hacer que JSON.parse/stringify no esté disponible de repente, incluso cuando su marcado no debería haber activado el modo peculiar. –

+0

tengo algo que ya me gusta

0

Para una alternativa, en un escenario donde es posible que deba ejecutar en modo estricto por cualquier razón (tengo otra biblioteca que incluye "uso estricto"), puede mirar aquí: https://github.com/douglascrockford/JSON-js. He modificado este para comprobar primero si no está definido JSON, y sólo genera el JSON.parse función de si se trata de:

if (typeof JSON === "undefined") { 
    var JSON = { 
     parse: <insert value of json_parse from library here> 
    }; 
} 

Mi problema era el código de aplicación que no trabajan en IE9 (modo estricto siendo utilizado por una biblioteca participante, yo creer). Eso resolvió el problema para mí.

0

el mero problema es que el envío de encabezados UTF-8 invalidará el JSON (IE no me gusta/no me gustó). como se describe el problema, que todavía podría aplicar para IE9 ... una vez escribió un how to, hace unos años. agregar compatibilidad con JSON a un navegador que puede analizar el JSON nativo probablemente no sea la solución óptima, ya que produce una sobrecarga inútil, solo porque no entrega el JSON en el formato esperado.

Cuestiones relacionadas