Android json数据Log格式化打印

来源:互联网 发布:转行数据分析师 编辑:程序博客网 时间:2024/06/11 04:52

问题:

Android项目中的网络请求返回的数据一般都是json格式,而且可能很长,在log中就是长长的一大串堆在那里,还需要复制出来进行格式化处理,很麻烦。

看到ios人家返回的数据直接就是json格式化后的样式,看起来方便多了,羡慕ing

解决:

偶然看到了有人处理的log样式是这样的


这不就是我要的样式吗,找代码看实现方式,

发现其实没有啥,关键方法如下

public static final String LINE_SEPARATOR = System.getProperty("line.separator");    public static void printLine(String tag, boolean isTop) {        if (isTop) {            Log.d(tag, "╔═══════════════════════════════════════════════════════════════════════════════════════");        } else {            Log.d(tag, "╚═══════════════════════════════════════════════════════════════════════════════════════");        }    }    public static void printJson(String tag, String msg, String headString) {        String message;        try {            if (msg.startsWith("{")) {                JSONObject jsonObject = new JSONObject(msg);                message = jsonObject.toString(4);//最重要的方法,就一行,返回格式化的json字符串,其中的数字4是缩进字符数            } else if (msg.startsWith("[")) {                JSONArray jsonArray = new JSONArray(msg);                message = jsonArray.toString(4);            } else {                message = msg;            }        } catch (JSONException e) {            message = msg;        }        printLine(tag, true);        message = headString + LINE_SEPARATOR + message;        String[] lines = message.split(LINE_SEPARATOR);        for (String line : lines) {            Log.d(tag, "║ " + line);        }        printLine(tag, false);    }

代码放进LogUtil,可以直接用,效果如下


看着清晰多了,是不是很简单,而且不会有字符超过4K显示不全的问题。

原创粉丝点击