格式化 Json / ToSting 日志

200 阅读1分钟

Json / ToSting 格式化工具

格式化方法

天天看控制台输出的一坨数据太难受了, 就写个工具格式化输出一下, 省的天天复制粘贴出来格式化

    public static <T> String toStringFormat(T target){
        return toStringFormat(target.toString());
    }

    public static String toStringFormat(String target){

        if (null == target || target.isEmpty()){
            return "";
        }

        // 获取参数 Sting 相应的字符数组
        char[] array = target.toCharArray();

        int tableSize = 0;

        StringBuilder builder = new StringBuilder();

        // 遍历格式化
        for (char c : array) {

            switch (c){
                case '(':
                case '[':
                case '{': {
                    tableSize++;
                    builder.append(c).append("\n");
                    appendTab(builder, tableSize);
                    break;
                }
                case ')':
                case ']':
                case '}':{
                    tableSize--;
                    builder.append("\n");
                    appendTab(builder, tableSize);
                    builder.append(c);
                    break;
                }
                case ',':{
                    builder.append(c);
                    builder.append("\n");
                    appendTab(builder, tableSize);
                    break;
                }
                case '=': {
                    builder.append(" = ");
                    break;
                }
                case ' ':{
                    break;
                }
                default:
                    builder.append(c);
            }
        }

        return builder.toString();
    }

    private static void appendTab(StringBuilder builder, int size) {
        for (int i = 0; i < size; i++) {
            builder.append("\t");
        }
    }

例子

狗狗类

    /*
        {"name": "旺财","color": "黄"}
    */
    public class Dog {
        
        private String name;
        
        private String color;
        
        @Override
        public String toString() {
            return "Dog{" +
                    "name='" + name + '\'' +
                    ", color='" + color + '\'' +
                    '}';
        }
        
        // getter setter
    }

格式化输出与结果

    Dog dog = new Dog().setName("大白").setColor("黑");

    System.out.println("Json: ");
    System.out.println(toStringFormat("{\"name\": \"旺财\",\"color\": \"黄\"}"));

    System.out.println("toString: ");
    System.out.println(toStringFormat(dog));

    /*
        Json: 
        {
            "name":"旺财",
            "color":"黄"
        }
        toString: 
        Dog{
            name = '大白',
            color = '黑'
        }
    */