| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package com.happy.Unitil_elc;
- import org.apache.commons.text.StringEscapeUtils;
- public class JsonUtil {
- private static String getLevelStr(int level) {
- StringBuilder levelStr = new StringBuilder();
- for (int levelI = 0; levelI < level; levelI++) {
- levelStr.append("\t");
- }
- return levelStr.toString();
- }
- public static String JsonFormart(String s) {
- int level = 0;
- //存放格式化的json字符串
- StringBuilder jsonForMatStr = new StringBuilder();
- for(int index=0;index<s.length();index++)//将字符串中的字符逐个按行输出
- {
- //获取s中的每个字符
- char c = s.charAt(index);
- // System.out.println(s.charAt(index));
- //level大于0并且jsonForMatStr中的最后一个字符为\n,jsonForMatStr加入\t
- if (level > 0 && '\n' == jsonForMatStr.charAt(jsonForMatStr.length() - 1)) {
- jsonForMatStr.append(getLevelStr(level));
- // System.out.println("123"+jsonForMatStr);
- }
- //遇到"{"和"["要增加空格和换行,遇到"}"和"]"要减少空格,以对应,遇到","要换行
- switch (c) {
- case '{':
- case '[':
- jsonForMatStr.append(c).append("\n");
- level++;
- break;
- case ',':
- jsonForMatStr.append(c).append("\n");
- break;
- case '}':
- case ']':
- jsonForMatStr.append("\n");
- level--;
- jsonForMatStr.append(getLevelStr(level));
- jsonForMatStr.append(c);
- break;
- default:
- jsonForMatStr.append(c);
- break;
- }
- }
- return StringEscapeUtils.unescapeJava(jsonForMatStr.toString());
- }
- }
|