Json格式美化
<!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>
</pre>
本文由用戶 fdpg 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!