Json的格式化

public class forMaterJson {
public static void main(String[] args) {
String jsonStr ="{name:网站,num:3,sites: ["+
       " { name:Google, info:[ Android, Google 搜索, Google 翻译 ] },"+
       " { name:Runoob, info:[ 菜鸟教程, 菜鸟工具, 菜鸟微信 ] },"
     +   "{ name:Taobao, info:[ 淘宝, 网购 ] }]"
     +"}";

printJson(jsonStr);

}
 
    public static void printJson(String jsonStr){
        System.out.println(formatJson(jsonStr));
    }


    
    public static String formatJson(String jsonStr) {
        if (null == jsonStr || "".equals(jsonStr)) return "";
        StringBuilder sb = new StringBuilder();
        char last = '\0';
        char current = '\0';
        int indent = 0;
        for (int i = 0; i < jsonStr.length(); i++) {
            last = current;
            current = jsonStr.charAt(i);
            switch (current) {
                case '{':
                case '[':
                    sb.append(current);
                    sb.append('\n');
                    indent++;
                    addIndentBlank(sb, indent);
                    break;
                case '}':
                case ']':
                    sb.append('\n');
                    indent--;
                    addIndentBlank(sb, indent);
                    sb.append(current);
                    break;
                case ',':
                    sb.append(current);
                    if (last != '\\') {
                        sb.append('\n');
                        addIndentBlank(sb, indent);
                    }
                    break;
                default:
                    sb.append(current);
            }
        }


        return sb.toString();
    }


   
    private static void addIndentBlank(StringBuilder sb, int indent) {
        for (int i = 0; i < indent; i++) {
            sb.append('\t');
        }
    }
    }

猜你喜欢

转载自blog.csdn.net/mrf_w/article/details/78432790