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

来源:互联网 发布:ubuntu ipython 使用 编辑:程序博客网 时间:2024/05/23 20:09
/** * 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();    }}
2 0
原创粉丝点击