格式化JSON串用来展示

来源:互联网 发布:南宁php招聘 编辑:程序博客网 时间:2024/06/05 16:11

public static String format(String str) {
StringBuffer sb = new StringBuffer();
int length = str.length();
int count = 0; //缩进倍数
String lastStr = "";
for(int i=0;i<length;i++) {
String sub = str.substring(i, i+1);

if("{".equals(sub) || "[".equals(sub)) {
count++;
sb.append(sub);
sb.append("\r\n");
for(int j=0;j<count;j++) {
sb.append("  ");
}
}
else if(",".equals(sub)) {
if("\"".equals(lastStr) || "]".equals(lastStr)) {
sb.append(sub);
sb.append("\r\n");
for(int j=0;j<count;j++) {
sb.append("  ");
}
} else {
sb.append(sub);
}
}
else if("}".equals(sub)) {
if("{".equals(lastStr)) {
for(int j=0;j<count;j++) {
sb.setLength(sb.length()-2); //2个空格
}
sb.setLength(sb.length()-2); //\r\n
} else {
sb.append("\r\n");
count--;
for(int j=0;j<count;j++) {
sb.append("  ");
}
count++;
}
count--;
sb.append(sub);
}
else if("]".equals(sub)) {
if("[".equals(lastStr)) {
for(int j=0;j<count;j++) {
sb.setLength(sb.length()-2); //2个空格
}
sb.setLength(sb.length()-2); //\r\n
} else {
sb.append("\r\n");
count--;
for(int j=0;j<count;j++) {
sb.append("  ");
}
count++;
}
count--;
sb.append(sub);
}
else {
sb.append(sub);
}
lastStr = sub;
}
return sb.toString();
}
0 0
原创粉丝点击