1. 程式人生 > 實用技巧 >前端json格式化輸出函式

前端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; },