- JSON对象格式化
public static void main(String[] args) throws JsonProcessingException {
Demo demo = new Demo("sojson",4,"https://www.sojson.com");
ObjectMapper mapper = new ObjectMapper();
//普通输出
System.out.println(mapper.writeValueAsString(demo));
//格式化/美化/优雅的输出
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(demo));
}
- JSON字符串格式化
package com.github.pig.admin.util;
/**
* JSON 工具类
*/
public class JsonUtil {
/**
* JSON格式化输出
* @param json
* @return
*/
public static String JsonFormart(String json) {
int level = 0;
//存放格式化的json字符串
StringBuffer jsonForMatStr = new StringBuffer();
for (int index = 0; index < json.length(); index++)//将字符串中的字符逐个按行输出
{
//获取s中的每个字符
char c = json.charAt(index);
//level大于0并且jsonForMatStr中的最后一个字符为\n,jsonForMatStr加入\t
if (level > 0 && '\n' == jsonForMatStr.charAt(jsonForMatStr.length() - 1)) {
jsonForMatStr.append(getLevelStr(level));
}
//遇到"{"和"["要增加空格和换行,遇到"}"和"]"要减少空格,以对应,遇到","要换行
switch (c) {
case '{':
case '[':
jsonForMatStr.append(c + "\n");
level++;
break;
case ',':
jsonForMatStr.append(c + "\n");
break;
case '}':
case ']':
jsonForMatStr.append("\n");
level--;
jsonForMatStr.append(getLevelStr(level));
jsonForMatStr.append(c);
break;
default:
jsonForMatStr.append(c);
break;
}
}
return jsonForMatStr.toString();
}
/**
* 日志等级替换成制表符
* @param level
* @return
*/
private static String getLevelStr(int level) {
StringBuffer levelStr = new StringBuffer();
for (int levelI = 0; levelI < level; levelI++) {
levelStr.append("\t");
}
return levelStr.toString();
}
}