java写JSON格式化的方法
来源:互联网 发布:网络协议的四层模型 编辑:程序博客网 时间:2024/04/30 18:53
貌似大家都用beJson等第三方来格式化,而且实现的很好,所以不需要自己写了,而且没有写的时候回认为很难写,但是我心血来潮想写就写,其实花不了多少时间,一个小时左右就写完了。用System.out.println打印的话格式化很不错,或者Android的TextView和EditText也可以,但是不能格式化在Log打印里,原因是Android的Log打印太多,估计人家设计的时候,Log打印时把格式化好的文字都给压缩紧凑了。
好了,思路是什么样的呢?很好理解,遍历整个字符串,用StringBuffer或者StringBuilder添加源字符串的字符,当遇到”{” 或 “[” 的时候我们就换号并缩进,用一个变量来记录缩进个数,然后append记录的个数个\t,当遇到 “]” 或 “}” 时,缩进个数减1,并换行,遇到“,”时,也换行,缩进个数不变,最后把StringBuffer的数据返回就是格式化的结果了。
/** * 格式化json * @param content * @return */ public static String formatJson(String content) { StringBuffer sb = new StringBuffer(); int index = 0; int count = 0; while(index < content.length()){ char ch = content.charAt(index); if(ch == '{' || ch == '['){ sb.append(ch); sb.append('\n'); count++; for (int i = 0; i < count; i++) { sb.append('\t'); } } else if(ch == '}' || ch == ']'){ sb.append('\n'); count--; for (int i = 0; i < count; i++) { sb.append('\t'); } sb.append(ch); } else if(ch == ','){ sb.append(ch); sb.append('\n'); for (int i = 0; i < count; i++) { sb.append('\t'); } } else { sb.append(ch); } index ++; } return sb.toString(); } /** * 把格式化的json紧凑 * @param content * @return */ public static String compactJson(String content) { String regEx="[\t\n]"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(content); return m.replaceAll("").trim(); }
0 0
- java写JSON格式化的方法
- 原生js格式化json和格式化xml的方法
- json格式化日期方法
- java对Json字符串的格式化输出
- java 格式化json字符串
- Java Json格式化工具
- Java Json字符串格式化
- Java JSON时间格式化
- 美化过后的json字符串去格式化的方法
- php JSON数据格式化方法
- php JSON数据格式化方法 .
- php JSON数据格式化方法
- php JSON数据格式化方法
- php JSON数据格式化方法
- php JSON数据格式化方法
- Json的格式化
- JSON以及Java转换JSON的方法
- Java-Json的格式化和转参数表格
- Nginx探索二
- STM32f103 外部引中断
- 一些奇思妙想的模拟题
- BFS--广度优先搜索--图的邻接表
- setsockopt
- java写JSON格式化的方法
- 2440裸机lEd
- Java的多态
- 递归
- NameNode中数据节点的保存(1)——Host2NodesMap
- 关于chrome的字体怎么设置小于12px的问题
- 栈的实现(栈的基础操作)
- ios动画效果学习
- ios动画效果学习