jQuery对于从JSON字符串到JSON对象的转换提供了 $.parseJSON() 函数,并做到了很好的兼容性,纵使在IE7环境中也可正常运行。然而,它却没有提供从JSON对象到JSON字符串的转换函数(我也不懂它为什么不提供)。所以为了获取JSON字符串,我们就只能去调用浏览器的原生方法 JSON.stringify()。
JSON became a built-in feature of JavaScript when the ECMAScript Programming Language Standard - Fifth Edition was adopted by the ECMA General Assembly in December 2009.
可见JSON对象是从2009年12月起规定的JavaScript的内置对象,所以使用 JSON.stringify() 在大多数情况都没有问题。但是,古老而怪异的IE7及以下版本的浏览器中没有该对象。
解决方法就是引用一个第三方的js文件。它只会在当前浏览器没有JSON对象的情况下,去创建一个JSON对象以及它的stringify方法和parse方法。其parse方法是用eval方法作为底层实现,并防止eval方法带来的可能隐患,做了相关保护措施。
github链接如下:
JSON in JavaScript