Json格式美化

2019PHP高薪工程师学习路线图....>>>

 
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <title>JSON格式美化</title>
  <script type="text/javascript">
  <!--
    function repeat(s, count) {
        return new Array(count + 1).join(s);
    }
  
    function formatJson() {
  
        var json=  document.form1.sourcejson.value;
  
        var i           = 0,
            len          = 0,
            tab         = "    ",
            targetJson     = "",
            indentLevel = 0,
            inString    = false,
            currentChar = null;
              
              
        for (i = 0, len = json.length; i < len; i += 1) { 
            currentChar = json.charAt(i);
  
            switch (currentChar) {
            case '{': 
            case '[': 
                if (!inString) { 
                    targetJson += currentChar + "\\n" + repeat(tab, indentLevel + 1);
                    indentLevel += 1; 
                } else { 
                    targetJson += currentChar; 
                }
                break; 
            case '}': 
            case ']': 
                if (!inString) { 
                    indentLevel -= 1; 
                    targetJson += "\\n" + repeat(tab, indentLevel) + currentChar; 
                } else { 
                    targetJson += currentChar; 
                } 
                break; 
            case ',': 
                if (!inString) { 
                    targetJson += ",\\n" + repeat(tab, indentLevel); 
                } else { 
                    targetJson += currentChar; 
                } 
                break; 
            case ':': 
                if (!inString) { 
                    targetJson += ": "; 
                } else { 
                    targetJson += currentChar; 
                } 
                break; 
            case ' ':
            case "\\n":
            case "\\t":
                if (inString) {
                    targetJson += currentChar;
                }
                break;
            case '"': 
                if (i > 0 && json.charAt(i - 1) !== '\\\\') {
                    inString = !inString; 
                }
                targetJson += currentChar; 
                break;
            default: 
                targetJson += currentChar; 
                break;                    
            } 
        } 
        document.form1.targetjson.value=targetJson;
        return;
    }
  //-->
  </script>
 </head>
 <body>
 <form id="form1" name="form1">
        <textarea name="sourcejson" id="sourcejson" cols="80" rows="30"></textarea>     
        <input type="button" onclick="formatJson();" value="美化"/>
        <textarea name="targetjson" id="targetjson" cols="80" rows="30">  </textarea>
        </form>
 </body>
</html>