JSON字符串格式化,自动缩进 ---Android基础篇
2017-08-24 15:34
417 查看
JSON字符串格式化
文 | 莫若吻(注:本文转载自网络,原作者写的不错,学习、支持一下。当然若原作者有异议可以联系我将其删除。谢谢!)
使用后的格式如下图:
具体代码如下:
public class JsonUtils { /** * @date 2017/8/24 * @description 将字符串格式化成JSON的格式 */ 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(); } private static String getSpaceOrTab(int tabNum) { StringBuffer sbTab = new StringBuffer(); for (int i = 0; i < tabNum; i++) { sbTab.append('\t'); } return sbTab.toString(); } }
相关文章推荐
- Android学习之JSON字符串格式化,自动缩进
- 【Java基础】@JSONFORMAT 日期格式自动格式化
- 使用GSON来解析和生成JSON基础,通过传入List集合自动生成json字符串(一)
- android开发过程中将json日期字符串,转换成JAVA中Date类型格式化字符串
- android开发 GSON和JsonObject互相转换时Base64字符串末尾自动添加了换行符的问题
- 将python数据结构导出成字符串并自动缩进格式化
- Android字符串资源及其格式化
- android解析JSON字符串
- Android字符串资源及其格式化
- 关于JSON格式字符串的格式化
- Android-字符串资源及其格式化
- Python语言基础(二) -- 字符串格式化
- android中 把json字符串从文件中去除,转换为一个 自定义对象的list中
- Android字符串格式化
- android解析JSON字符串 (最强最简便方法)
- android解析json字符串
- android中解析后台返回的json字符串
- [Android]四种方式解析字符串----JSON、SAX、DOM、XML
- android代码重构日记(三)——字符串资源处理及其格式化
- Android基础教程(八)之仿百度谷歌搜索自动提示框-----AutoCompleteTextView的应用