parse ejemplo array javascript json browser

javascript - ejemplo - Soporte JSON nativo del navegador(window.JSON)



string to json javascript (5)

La ventaja de usar json2.js es que solo instalará un analizador si el navegador no tiene uno. Puede mantener la compatibilidad con los navegadores más antiguos, pero use el analizador nativo JSON (que es más seguro y más rápido) si está disponible.

Navegadores con Native JSON:

  • IE8 +
  • Firefox 3.1+
  • Safari 4.0.3+
  • Opera 10.5+

GRAMO.

He visto referencias a algunos navegadores que soportan nativamente el análisis / serialización de objetos de manera segura y eficiente mediante el objeto window.JSON , pero los detalles son difíciles de encontrar. ¿Alguien puede apuntar en la dirección correcta? ¿Cuáles son los métodos que este objeto expone? ¿En qué navegadores se admite?


Para el beneficio de cualquiera que se encuentre con este hilo, para obtener una lista actualizada y definitiva de navegadores compatibles con el objeto JSON, mire aquí. . Una breve respuesta genérica: casi todos los navegadores que realmente importan en el año 2013+.


Todos los navegadores modernos admiten la codificación / decodificación JSON nativa (Internet Explorer 8+, Firefox 3.1+, Safari 4+ y Chrome 3+). Básicamente, JSON.parse(str) analizará la cadena JSON en str y devolverá un objeto, y JSON.stringify(obj) devolverá la representación JSON del objeto obj .

Más detalles sobre el artículo de MDN .


[extendiendo el comentario de musicfreak ]

Si está utilizando jQuery, use parseJSON

var obj = jQuery.parseJSON(data)

Internamente, comprueba si el navegador admite .JSON.parse y (si está disponible) llama a la ventana nativa.JSON.parse.

Si no, se analiza automáticamente.


jQuery-1.7.1.js - 555 línea ...

parseJSON: function( data ) { if ( typeof data !== "string" || !data ) { return null; } // Make sure leading/trailing whitespace is removed (IE can''t handle it) data = jQuery.trim( data ); // Attempt to parse using the native JSON parser first if ( window.JSON && window.JSON.parse ) { return window.JSON.parse( data ); } // Make sure the incoming data is actual JSON // Logic borrowed from http://json.org/json2.js if ( rvalidchars.test( data.replace( rvalidescape, "@" ) .replace( rvalidtokens, "]" ) .replace( rvalidbraces, "")) ) { return ( new Function( "return " + data ) )(); } jQuery.error( "Invalid JSON: " + data ); } rvalidchars = /^[/],:{}/s]*$/, rvalidescape = ///(?:["////bfnrt]|u[0-9a-fA-F]{4})/g, rvalidtokens = /"[^"///n/r]*"|true|false|null|-?/d+(?:/./d*)?(?:[eE][+/-]?/d+)?/g, rvalidbraces = /(?:^|:|,)(?:/s*/[)+/g,