[转]递归Json转String

使用本函数,请先引入jquery的包

function jsonToString(obj) {
        var THIS = this;
        switch (typeof (obj)) {
            case 'string':
                return '"' + obj.replace(/(["\\])/g, '\\$1') + '"';
            case 'array':
                return '[' + obj.map(THIS.jsonToString).join(',') + ']';
            case 'object':
                if (obj instanceof Array) {
                    var strArr = [];
                    var arrList = new Array();
                    var len = obj.length;
                    for (var i = 0; i < len; i++) {
                        strArr.push(THIS.jsonToString(obj[i]));
                    }
                    $.each(strArr, function (i) {
                        if (typeof (strArr[i]) != "undefined") {
                            arrList.push(strArr[i]);
                        }
                    });
                    return '[' + arrList.join(',') + ']';
                } else if (obj == null) {
                    return 'null';

                } else {
                    var string = [];
                    for (var property in obj) string.push(THIS.jsonToString(property) + ':' + THIS.jsonToString(obj[property]));
                    return '{' + string.join(',') + '}';
                }
            case 'number':
                return obj;
            case false:
                return obj;
        }
    };

 本人经过测试

posted @ 2012-10-25 13:33  IT-Chris  阅读(226)  评论(0)    收藏  举报