由于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类型的忽略掉而已)