jquery.json.js 774 Bytes
jQuery.extend({
	/**
	 * js对象转为json字符串
	 * @param str
	 * @returns
	 */
	toJSON : function(o) {
		var r = [], i = null, j = 0, len;
		if (o == null) {
			return o;
		}
		if (typeof o == 'string') {
			return '"' + o + '"';
		}
		if (typeof o == 'object') {
			if (!o.sort) {
				r[j++] = '{';
				for (i in o) {
					r[j++] = '"';
					r[j++] = i;
					r[j++] = '":';
					r[j++] = $.toJSON(o[i]);
					r[j++] = ',';
				}
				// 可能的空对象
				// r[r[j-1] == '{' ? j:j-1]='}';
				r[j - 1] = '}';
			} else {
				r[j++] = '[';
				for (i = 0, len = o.length; i < len; ++i) {
					r[j++] = $.toJSON(o[i]);
					r[j++] = ',';
				}
				// 可能的空数组
				r[len == 0 ? j : j - 1] = ']';
			}
			return r.join('');
		}
		return o.toString();
	}
});