美文网首页Android
Android代码json字符串格式化

Android代码json字符串格式化

作者: 明日未期 | 来源:发表于2020-02-01 20:02 被阅读0次

    代码来源百度

    public class FormatJson
    {
        public static String format(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字符串格式化

        本文链接:https://www.haomeiwen.com/subject/pkwxxhtx.html