概述
用法:
@Override
public void onResponse(String response) {
if(AppConfig.DEBUG) {
Log.e(“json_http”, “http返回参数:” + JsonFormat.format((java.lang.String) response));
}
onSuccess(response);
}
下面贴代码,可以直接用。
package com.yilvs.utils;
/**
* json格式化工具
* Created by Sch on 2017/6/28.
*
*/
public class JsonFormat {
/**
* 默认每次缩进两个空格
*/
private static final String empty="
";
public static String format(String json){
try {
int empty=0;
char[]chs=json.toCharArray();
StringBuilder stringBuilder=new StringBuilder();
for (int i = 0; i < chs.length;) {
//若是双引号,则为字符串,下面if语句会处理该字符串
if (chs[i]=='"') {
stringBuilder.append(chs[i]);
i++;
//查找字符串结束位置
for ( ; i < chs.length;) {
//如果当前字符是双引号,且前面有连续的偶数个,说明字符串结束
if ( chs[i]=='"'&&isDoubleSerialBackslash(chs,i-1)) {
stringBuilder.append(chs[i]);
i++;
break;
} else{
stringBuilder.append(chs[i]);
i++;
}
}
}else if (chs[i]==',') {
stringBuilder.append(',').append('n').append(getEmpty(empty));
i++;
}else if (chs[i]=='{'||chs[i]=='[') {
empty++;
stringBuilder.append(chs[i]).append('n').append(getEmpty(empty));
i++;
}else if (chs[i]=='}'||chs[i]==']') {
empty--;
stringBuilder.append('n').append(getEmpty(empty)).append(chs[i]);
i++;
}else {
stringBuilder.append(chs[i]);
i++;
}
}
return stringBuilder.toString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return json;
}
}
private static boolean isDoubleSerialBackslash(char[] chs, int i) {
int count=0;
for (int j = i; j >-1; j--) {
if (chs[j]=='\') {
count++;
}else{
return count%2==0;
}
}
return count%2==0;
}
/**
* 缩进
* @param count
* @return
*/
private static String getEmpty(int count){
StringBuilder stringBuilder=new StringBuilder();
for (int i = 0; i < count; i++) {
stringBuilder.append(empty) ;
}
return stringBuilder.toString();
}
}
最后
以上就是尊敬金鱼为你收集整理的分享一个格式化json的工具类,在日志输入里直接可以很方便的看log了的全部内容,希望文章能够帮你解决分享一个格式化json的工具类,在日志输入里直接可以很方便的看log了所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复