Android学习之JSON字符串格式化,自动缩进
2017-05-04 10:52
381 查看
/** * JSON字符串格式化成JSON结构 * * @author lzy * */ public class JSONTool { public static String stringToJSON(String strJson) { // 计数tab的个数 int tabNum = 0; StringBuffer jsonFormat = new StringBuffer(); int length = strJson.length(); char last = 0; for (int i = 0; i < length; i++) { char c = strJson.charAt(i); if (c == '{') { tabNum++; jsonFormat.append(c + "\n"); jsonFormat.append(getSpaceOrTab(tabNum)); } else if (c == '}') { tabNum--; jsonFormat.append("\n"); jsonFormat.append(getSpaceOrTab(tabNum)); jsonFormat.append(c); } else if (c == ',') { jsonFormat.append(c + "\n"); jsonFormat.append(getSpaceOrTab(tabNum)); } else if (c == ':') { jsonFormat.append(c + " "); } else if (c == '[') { tabNum++; char next = strJson.charAt(i + 1); if (next == ']') { jsonFormat.append(c); } else { jsonFormat.append(c + "\n"); jsonFormat.append(getSpaceOrTab(tabNum)); } } else if (c == ']') { tabNum--; if (last == '[') { jsonFormat.append(c); } else { jsonFormat.append("\n" + getSpaceOrTab(tabNum) + c); } } else { jsonFormat.append(c); } last = c; } return jsonFormat.toString(); } // 是空格还是tab private static String getSpaceOrTab(int tabNum) { StringBuffer sbTab = new StringBuffer(); for (int i = 0; i < tabNum; i++) { sbTab.append('\t'); } return sbTab.toString(); } }
相关文章推荐
- JSON字符串格式化,自动缩进 ---Android基础篇
- android开发 GSON和JsonObject互相转换时Base64字符串末尾自动添加了换行符的问题
- android开发过程中将json日期字符串,转换成JAVA中Date类型格式化字符串
- 将python数据结构导出成字符串并自动缩进格式化
- 将Json字符串格式化显示
- Android字符串资源及其格式化
- 格式化XML:输出有缩进效果的XML字符串
- Date类学习总结(Calendar Date 字符串 相互转换 格式化)
- Date类学习总结(Calendar Date 字符串 相互转换 格式化)
- 关于JSON格式字符串的格式化
- 利用反射,自动将对象生成json字符串【反射应用的一个小DEMO】
- [学习笔记][C++Primer Plus]使用cout格式化输出字符串,3q xuzhong
- Android字符串资源及其格式化
- Android学习之JSON数据解析
- iphone/android比较学习之──图片、文件、字符串
- android解析JSON字符串
- Date类学习总结(Calendar Date 字符串 相互转换 格式化)
- OPhone/Android的学习(2)—从分析Eclipse自动生成的代码到以XML控制UI
- Date 类学习总结(Calendar Date 字符串 相互转换 格式化)
- Android学习之JSON数据解析