Android学习之JSON字符串格式化,自动缩进

xiaoxiao2021-02-27  481

/** * 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();    } }
转载请注明原文地址: https://www.6miu.com/read-2058.html

最新回复(0)