JsonUtil.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.happy.Unitil_elc;
  2. import org.apache.commons.text.StringEscapeUtils;
  3. public class JsonUtil {
  4. private static String getLevelStr(int level) {
  5. StringBuilder levelStr = new StringBuilder();
  6. for (int levelI = 0; levelI < level; levelI++) {
  7. levelStr.append("\t");
  8. }
  9. return levelStr.toString();
  10. }
  11. public static String JsonFormart(String s) {
  12. int level = 0;
  13. //存放格式化的json字符串
  14. StringBuilder jsonForMatStr = new StringBuilder();
  15. for(int index=0;index<s.length();index++)//将字符串中的字符逐个按行输出
  16. {
  17. //获取s中的每个字符
  18. char c = s.charAt(index);
  19. // System.out.println(s.charAt(index));
  20. //level大于0并且jsonForMatStr中的最后一个字符为\n,jsonForMatStr加入\t
  21. if (level > 0 && '\n' == jsonForMatStr.charAt(jsonForMatStr.length() - 1)) {
  22. jsonForMatStr.append(getLevelStr(level));
  23. // System.out.println("123"+jsonForMatStr);
  24. }
  25. //遇到"{"和"["要增加空格和换行,遇到"}"和"]"要减少空格,以对应,遇到","要换行
  26. switch (c) {
  27. case '{':
  28. case '[':
  29. jsonForMatStr.append(c).append("\n");
  30. level++;
  31. break;
  32. case ',':
  33. jsonForMatStr.append(c).append("\n");
  34. break;
  35. case '}':
  36. case ']':
  37. jsonForMatStr.append("\n");
  38. level--;
  39. jsonForMatStr.append(getLevelStr(level));
  40. jsonForMatStr.append(c);
  41. break;
  42. default:
  43. jsonForMatStr.append(c);
  44. break;
  45. }
  46. }
  47. return StringEscapeUtils.unescapeJava(jsonForMatStr.toString());
  48. }
  49. }