JSON字串格式化,自動縮排 ---Android基礎篇
阿新 • • 發佈:2019-01-27
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(); } }