- <!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>
- //该片段来自于http://www.codesnippet.cn/detail/1603201511891.html
来源: http://www.codesnippet.cn/detail/1603201511891.html