由于ie6,7不支持JSON.stringify(json), 我们只好自己再写一个函数来替换这个方法. 代码如下:
function JsonToStr(o) {
var arr = [];
var fmt = function(s) {
if (typeof s == 'object' && s != null) return JsonToStr(s);
return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
}
for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
return '{' + arr.join(',') + '}';
}
另外: 如果不想json中的数字也被字符串化. 可以改造:
return /^(string|number)$/.test(typeof s) ? '"' + s + '"' : s;
为 : return /^(string)$/.test(typeof s) ? '"' + s + '"' : s;
(其实就是把number类型的忽略掉而已)
本文提供了一个适用于IE6和IE7浏览器的JSON.stringify方法的替代方案,通过自定义函数实现将JavaScript对象转换成JSON字符串,特别关注数字类型是否进行字符串化的处理。
1861

被折叠的 条评论
为什么被折叠?



