您的位置:首页 > 移动开发 > Android开发

JSON字符串格式化,自动缩进 ---Android基础篇

2017-08-24 15:34 417 查看

JSON字符串格式化

文 | 莫若吻

(注:本文转载自网络,原作者写的不错,学习、支持一下。当然若原作者有异议可以联系我将其删除。谢谢!)

使用后的格式如下图:



具体代码如下:

public class JsonUtils
{
/**
* @date  2017/8/24
* @description 将字符串格式化成JSON的格式
*/
public static String stringToJSON(String strJson) {
// 计数tab的个数
int tabNum = 0;
StringBuffer jsonFormat = new StringBuffer();
int length = strJson.length();

char last = 0;
for (int i = 0; i < length; i++) {
char c = strJson.charAt(i);
if (c == '{') {
tabNum++;
jsonFormat.append(c + "\n");
jsonFormat.append(getSpaceOrTab(tabNum));
}
else if (c == '}') {
tabNum--;
jsonFormat.append("\n");
jsonFormat.append(getSpaceOrTab(tabNum));
jsonFormat.append(c);
}
else if (c == ',') {
jsonFormat.append(c + "\n");
jsonFormat.append(getSpaceOrTab(tabNum));
}
else if (c == ':') {
jsonFormat.append(c + " ");
}
else if (c == '[') {
tabNum++;
char next = strJson.charAt(i + 1);
if (next == ']') {
jsonFormat.append(c);
}
else {
jsonFormat.append(c + "\n");
jsonFormat.append(getSpaceOrTab(tabNum));
}
}
else if (c == ']') {
tabNum--;
if (last == '[') {
jsonFormat.append(c);
}
else {
jsonFormat.append("\n" + getSpaceOrTab(tabNum) + c);
}
}
else {
jsonFormat.append(c);
}
last = c;
}
return jsonFormat.toString();
}

private static String getSpaceOrTab(int tabNum) {
StringBuffer sbTab = new StringBuffer();
for (int i = 0; i < tabNum; i++) {
sbTab.append('\t');
}
return sbTab.toString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: