Javascript 将 JSON 转换为字符串
阅读(2972)默认使用 JSON.stringify 完成转换,对不支持此方法的浏览器做了兼容。
/**
* 转义特殊字符
*/
function escString(str) {
var m = {
'\\\\' : /\\/g,
'\\/' : /\//g,
'\\n' : /\n/g,
'' : /\r/g,
'\\t' : /\t/g,
'\\\'' : /\x27/g,
'\\"' : /\x22/g
};
str = str.toString();
for(var x in m) {
str = str.replace(m[x], x);
}
return str;
};
/**
* 将 JSON 转换为字符串
*/
function stringifyJSON(obj) {
var t, sw;
if (typeof(obj) == 'object') {
if(obj === null){ return 'null'; }
if(window.JSON && window.JSON.stringify){
return JSON.stringify(obj);
}
// 是否为数组
sw = Object.prototype.toString.call(obj).slice(8, -1).toLowerCase()=='array';
t = [];
for (var i in obj) {
t.push((sw ? "" : ("\"" + escString(i) + "\":")) + stringifyJSON(obj[i]));
}
t = t.join();
return sw ? ("["+t+"]") : ("{"+t+"}");
} else if (typeof(obj) == 'undefined') {
return 'undefined';
} else if (typeof(obj) == 'number' || typeof(obj) == 'function') {
return obj.toString();
}
return !obj ? "\"\"" : ("\"" + escString(obj) + "\"");
};