在JAVA中把JSON数据格式化输出到控制台
2014-04-22 18:03
771 查看
public class ForMatJSONStr { public static void main(String[] args) { String jsonStr = "{\"id\":\"1\",\"name\":\"a1\",\"obj\":{\"id\":11,\"name\":\"a11\",\"array\":[{\"id\":111,\"name\":\"a111\"},{\"id\":112,\"name\":\"a112\"}]}}"; String fotmatStr = ForMatJSONStr.format(jsonStr); // fotmatStr = fotmatStr.replaceAll("\n", "<br/>"); // fotmatStr = fotmatStr.replaceAll("\t", " "); System.out.println(fotmatStr); } /** * 得到格式化json数据 退格用\t 换行用\r */ public static String format(String jsonStr) { int level = 0; StringBuffer jsonForMatStr = new StringBuffer(); for(int i=0;i<jsonStr.length();i++){ char c = jsonStr.charAt(i); if(level>0&&'\n'==jsonForMatStr.charAt(jsonForMatStr.length()-1)){ jsonForMatStr.append(getLevelStr(level)); } switch (c) { case '{': case '[': jsonForMatStr.append(c+"\n"); level++; break; case ',': jsonForMatStr.append(c+"\n"); break; case '}': case ']': jsonForMatStr.append("\n"); level--; jsonForMatStr.append(getLevelStr(level)); jsonForMatStr.append(c); break; default: jsonForMatStr.append(c); break; } } return jsonForMatStr.toString(); } private static String getLevelStr(int level){ StringBuffer levelStr = new StringBuffer(); for(int levelI = 0;levelI<level ; levelI++){ levelStr.append("\t"); } return levelStr.toString(); } }
输出结果如下:
代码仅供参考,其中对于json中原有\n \t 或者<br/>的情况未做过多考虑
相关文章推荐
- java如何将json数据格式化输出到控制台
- Java 控制台格式化输出 JSON 字符串
- java中从控制台输入数据和输出数据到控制台
- JMeter 格式化输出rest服务返回json数据
- Python从http请求json数据并格式化输出
- 技术演绎之 [ java ] 数据格式化输出
- Androidstudio控制台分层输出接口日志.类似BeJSON,HiJson格式化JSON
- [置顶] Xcode控制台输出json数据乱码转为中文
- Java基础知识强化之集合框架笔记36:List练习之键盘录入多个数据在控制台输出最大值
- Xcode控制台输出json数据乱码转为中文-姬云鹏
- PHP格式化输出json数据
- PHP、Java输出json格式数据
- 用Java对JSON字符串进行格式化输出
- 用Java对JSON字符串进行格式化输出
- Java笔记(9):格式化控制台输出
- java对Json字符串的格式化输出
- SpringMVC 返回Java8 时间JSON数据的格式化问题处理
- 格式化输出json数据
- SpringMVC 返回Java8 时间JSON数据的格式化问题处理
- java在控制台的格式化输出