旧版的浏览器(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"}