Браузер-встроенная поддержка JSON (window.формат JSON)
Я видел ссылки на некоторые браузеры, изначально поддерживающие JSON-разбор / сериализацию объектов безопасно и эффективно через
5 ответов:
все современные браузеры поддерживают собственное кодирование/декодирование JSON (Internet Explorer 8+, Firefox 3.1+, Safari 4+ и Chrome 3+). В принципе,
JSON.parse(str)
будет анализировать строку JSON вstr
и вернуть объект, иJSON.stringify(obj)
будет возвращать JSON-представление объектаobj
.подробнее о статья MDN.
jQuery-1.7.1.линия js-555...
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,
преимущество использования json2.js заключается в том, что он будет устанавливать только парсер, если браузер еще не имеет его. Вы можете поддерживать совместимость со старыми браузерами, но использовать собственный парсер JSON (который является более безопасным и быстрым), если он доступен.
браузеры с собственным JSON:
- IE8+
- Firefox 3.1+
- Safari 4.0.3+
- Opera 10.5+
г.
[расширение musicfreak комментарии]
Если вы используете jQuery, используйте parseJSON
var obj = jQuery.parseJSON(data)
внутренне он проверяет, поддерживает ли браузер .формат JSON.разбор, и (если доступно) вызывает собственное окно.формат JSON.разбор.
если нет, то разбирает сам.
для всех, кто работает в этом потоке - для обновленного, окончательного списка браузеров, поддерживающих объект JSON посмотреть здесь.. Краткий общий ответ-почти все браузеры, которые действительно имеют значение в 2013 году+.