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 = '黑'
}
*/