前端json格式化輸出函數


format(str){
    var stack = []; //棧-用於括號匹配
    var tmpStr = '';    //新格式化JSON字符串
    var len = str.length;   //原始JSON長度

    //遍歷每一個字符
    for (let i = 0; i < len; i++) {

        //當遇到結構塊起始結構
        if (str[i] == '{' || str[i] === '[') {

            //起始結構后面直接換行  
            tmpStr += str[i] + "\n";

            //入棧
            stack.push(str[i]);
            
            //這里的意思是結構塊起始的下一行開始就會有一個縮進,縮進量與遇到的結構塊起始符個數成正比1:1
            tmpStr += "\t".repeat(stack.length);
        } 
        //當遇到結構塊結束符
        else if (str[i] == ']' || str[i] === '}') {

            //因為本身JSON格式是固定的,所以括號一定是成對的,這里先不考慮錯誤的json數據
            //遇到結束符就退棧,
            stack.pop();

            //結束符本身輸出到下一行,並減少一個縮進
            tmpStr += "\n"+"\t".repeat(stack.length) + str[i];
        } 
        //當遇到逗號的時候
        else if (str[i] == ',') {
            //逗號后方直接換行,以及下一行的縮進處理
            tmpStr += str[i] + "\n" + "\t".repeat(stack.length);
        } 
        else {
            //其他字符直接復制
            tmpStr += str[i];
        }
    }
    return tmpStr;
},

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM