JSON字符串控制台格式化输出 java

1.正常情况下返回的json数据格式如下:

{"header":{"transSn":"e33128bb7622462ebfb2cbfcc46baa14","dateTime":"20181002110000","serviceCode":"********","appId":"999999999999","bizId":"000000","version":"1.0","resType":"A","resCode":"SSS000","resMsg":"交易成功(业务附加消息:*****)"},"resBody":{"operator":"lgh","rowNumStart":"1","pageRowNum":"100","pageFlag":"0","totalRowNum":"1","orderFlag":"0","orderField":"","result":[{"flag":"1","riskCode":"00567000","riskName":"567*********","prem":"520.00","amntOrMult":"***","amnt":"200000","polNo":"12177"}]}}

默认都是一行输出,或者在HTML进过一些插件格式化之后才会显示比较美观的格式。那么在Java后台如何进行json格式化输出呢下面直接贴代码。

2.可以封装一个工具类专门转换json格式化:

     /**
* @param resString
* @return String
* @throws
* @Description 响应数据格式化
* @author lgh
* @date 2018/10/29-13:45
*/
private String responseFormat(String resString){ StringBuffer jsonForMatStr = new StringBuffer();
int level = 0;
for(int index=0;index<resString.length();index++)//将字符串中的字符逐个按行输出
{
//获取s中的每个字符
char c = resString.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
* @throws
* @author lgh
* @date 2018/10/29-14:29
*/
private String getLevelStr(int level) {
StringBuffer levelStr = new StringBuffer();
for (int levelI = 0; levelI < level; levelI++) {
levelStr.append("\t");
}
return levelStr.toString();
}

3.同样的数据输出之后就达到预期效果:

   {
"header":{
"transSn":"e33128bb7622462ebfb2cbfcc46baa14",
"dateTime":"20181002110000",
"serviceCode":"********",
"appId":"999999999999",
"bizId":"000000",
"version":"1.0",
"resType":"A",
"resCode":"SSS000",
"resMsg":"交易成功(业务附加消息:***)"
},
"resBody":{
"operator":"lgh",
"rowNumStart":"1",
"pageRowNum":"100",
"pageFlag":"0",
"totalRowNum":"1",
"orderFlag":"0",
"orderField":"",
"result":[
{
"flag":"1",
"riskCode":"00567000",
"riskName":"567 ****",
"prem":"520.00",
"amntOrMult":"***",
"amnt":"200000",
"polNo":"12177"
}
]
}
}

如有披露或问题欢迎留言或者入群探讨(仅仅是个json格式化的工具分享)
---------------------
作者:一页知秋否
来源:CSDN
原文:https://blog.csdn.net/qq_39470733/article/details/83506752
版权声明:本文为博主原创文章,转载请附上博文链接!

原文 JSON字符串控制台格式化输出

上一篇:如何用python写一个2048?


下一篇:C# Excel To DataTable