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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!