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字符串控制台格式化輸出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM