原json字符串
[{"item":[{"name":"北京","key":"热门"},{"name":"上海","key":"热门"},{"name":"深圳","key":"热门"},{"name":"广州","key":"热门"},{"name":"武汉","key":"热门"}],"title":"热门城市","type":"hot"}]我想得到这种格式
[ { "item":[ { "name":"北京", "key":"热门" }, { "name":"上海", "key":"热门" }, { "name":"深圳", "key":"热门" }, { "name":"广州", "key":"热门" }, { "name":"武汉", "key":"热门" } ], "title":"热门城市", "type":"hot" } ]怎么做呢?用以下代码,具体的自己可以进行修改
/** * 得到格式化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 ',': char d = jsonStr.charAt(i-1); if(d == '"' || d == ']' || d == '}'){ jsonForMatStr.append(c+"\n"); } else { jsonForMatStr.append(c); } 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(); }参考:https://blog.csdn.net/dushu990/article/details/80680831
中秋国庆快到了,顺便推荐一个抢票软件 ,没抢到票的可以试试。
