json对象格式化成html字符串显示

function jsonStrFormat(jsonData, tableSpaceNum) {
        //缩进字符
        var spaceStr = "    ";

        var startStr = "";
        var endStr = "";
        var subArr = [];
        var subStr = "";

        var dataType = checkDataType(jsonData);

        if(dataType === 'obj'){
            //对象
            startStr = "{<br>";

            for(var i in jsonData){
                subStr = numberStr(tableSpaceNum+1,spaceStr)+'"'+i+'":'+jsonStrFormat(jsonData[i],tableSpaceNum+1);
                subArr.push(subStr);
            }

            endStr = "<br>"+numberStr(tableSpaceNum,spaceStr)+"}";

            return startStr + subArr.join(',<br>') + endStr;
        }
        if(dataType === 'arr'){
            //对象
            startStr = "[<br>";

            for(var i in jsonData){

                subStr = numberStr(tableSpaceNum+1,spaceStr) + jsonStrFormat(jsonData[i],tableSpaceNum+1);

                subArr.push(subStr);

            }

            endStr = "<br>"+numberStr(tableSpaceNum,spaceStr)+"]";

            return startStr + subArr.join(',<br>') + endStr;
        }
        if(dataType === 'str'){
            //对象
            return '"'+jsonData+'"';
        }

    }

    function numberStr(num, str){
        console.log(num);
        var tmpStr="";
        for(var i=0;i<num;i++){
            tmpStr+=str;
        }
        return tmpStr;
    }

    function checkDataType(checkData){

        if(typeof checkData === 'object'){

            if(checkData instanceof Array){
                return 'arr';
            }else{
                return 'obj';
            }
        }

        if(typeof checkData === 'string'){
            return 'str';
        }

    }
var jsonDataS = {
        "s": {
            "sdfs": [
                "sdfs", "sdfsd", "sdfsd"
            ]
        }
    };
console.log(jsonStrFormat(jsonDataS,0));

猜你喜欢

转载自my.oschina.net/u/3095457/blog/1823698
今日推荐