旧版的浏览器(IE7之前)不支持JSON对象,jQuery封装了从字符串转json对象的方法却没有提供从json对象转字符串的方法,只能自己动手了。
//json对象转字符串
$.extend({
jsonStringify: function (json, level = 0) {
var result = [];
var isArray = $.isArray(json);
for (var i in json) {
var val = json[i];
var t = $.type(val);
var tmp = "";
if (t === "string") {
//tmp = '"' + $.enUnicode(val) + '"';
tmp = '"' + val + '"';
} else if (t === "number" || t === "boolean") {
tmp = val.toString();
} else if (t === "date") {
if (val.toJSON) {
tmp = '"' + val.toJSON() + '"';
} else if (val.toISOString) {
tmp = '"' + val.toISOString() + '"';
} else {
tmp = '"' + val.toUTCString() + '"';
}
} else if (t === "object") {
tmp = $.jsonStringify(val, level + 1);
} else if (t === "array") {
tmp = $.jsonStringify(val, level + 1, true);
} else if (t === "null") {
tmp = "null";
}
if (isArray) {
result.push(tmp);
} else {
result.push('"' + i + '":' + tmp);
}
}
if (isArray) {
return "[" + result.join(",") + "]";
} else {
return "{" + result.join(",") + "}";
}
}
});
调用方式:
$.jsonStringify({aa:123,bb:"123"})
输出结果:{"aa":123,"bb":"123"}