国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java如何將json數據格式化輸出到控制臺

MasonEast / 3213人閱讀

摘要:在做接口測試的過程中,大多數數據交互都使用格式,但是在控制臺輸出的效果遠不如瀏覽器插件實現的漂亮。在找了一些資料后,決定自己寫一個格式化輸出信息到控制臺的方法,經過一些嘗試已經完成。

在做接口測試的過程中,大多數數據交互都使用json格式,但是在控制臺輸出json的效果遠不如瀏覽器插件實現的漂亮。在找了一些資料后,決定自己寫一個格式化輸出json信息到控制臺的方法,經過一些嘗試已經完成。分享如下:

    /**
     * 輸出json
     *
     * @param jsonObject json格式響應實體
     */
    public static JSONObject output(JSONObject jsonObject) {
        if (MapUtils.isEmpty(jsonObject)) {
            output("json 對象是空的!");
            return jsonObject;
        }
        String start = SourceCode.getManyString(SPACE_1, 4);
        String jsonStr = jsonObject.toString();// 先將json對象轉化為string對象
        jsonStr = jsonStr.replaceAll("/", OR);
        int level = 0;// 用戶標記層級
        StringBuffer jsonResultStr = new StringBuffer(">  ");// 新建stringbuffer對象,用戶接收轉化好的string字符串
        for (int i = 0; i < jsonStr.length(); i++) {// 循環遍歷每一個字符
            char piece = jsonStr.charAt(i);// 獲取當前字符
            // 如果上一個字符是斷行,則在本行開始按照level數值添加標記符,排除第一行
            if (i != 0 && "
" == jsonResultStr.charAt(jsonResultStr.length() - 1)) {
                for (int k = 0; k < level; k++) {
                    jsonResultStr.append(start);
                }
            }
            switch (piece) {
                case ",":
                    // 如果是“,”,則斷行
                    char last = jsonStr.charAt(i - 1);
                    if (""0123456789le]}".contains(last + EMPTY)) {
                        jsonResultStr.append(piece + LINE);
                    } else {
                        jsonResultStr.append(piece);
                    }
                    break;
                case "{":
                case "[":
                    // 如果字符是{或者[,則斷行,level加1
                    jsonResultStr.append(piece + LINE);
                    level++;
                    break;
                case "}":
                case "]":
                    // 如果是}或者],則斷行,level減1
                    jsonResultStr.append(LINE);
                    level--;
                    for (int k = 0; k < level; k++) {
                        jsonResultStr.append(start);
                    }
                    jsonResultStr.append(piece);
                    break;
                default:
                    jsonResultStr.append(piece);
                    break;
            }
        }
        output(LINE + "↘ ↘ ↘ ↘ ↘ ↘ ↘ ↘ json ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙" + LINE + jsonResultStr.toString().replaceAll(LINE, LINE + ">  ") + LINE + "↘ ↘ ↘ ↘ ↘ ↘ ↘ ↘ json ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙");
        return jsonObject;
    }
    

更新了輸出顯示效果:

備注:在json數據中存在“,”這種情況以及value非string(數字和null或者科學技術法時)可能會存在一些顯示異常,以及value值本身是一個json數據的字符串時候也會把value當做json來處理。總體來說夠用,效果比較滿意。

一起來~FunTester

往期文章精選

java一行代碼打印心形

Linux性能監控軟件netdata中文漢化版

接口測試代碼覆蓋率(jacoco)方案分享

性能測試框架

如何在Linux命令行界面愉快進行性能測試

圖解HTTP腦圖

寫給所有人的編程思維

測試之JVM命令腦圖

公眾號地圖

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75960.html

相關文章

  • 如何寫一個無配置格式統一的日志

    摘要:背景大量項目在使用記日志,有部分項目使用日志混亂,格式不統一,多數人搞不懂配置文件,導致配置錯誤,現在需要開發一套統一的少配置的日志組件,使用方便。 背景 大量項目在使用logback記日志,有部分項目使用日志混亂,格式不統一,多數人搞不懂配置文件,導致配置錯誤,現在需要開發一套統一的、少配置的日志組件,使用方便。 設計思路 盡量采用0配置,無logback.xml 日志格式統一,方便...

    tulayang 評論0 收藏0
  • js溫故而知新6(JSON)——學習廖雪峰的js教程

    JSON JSON是JavaScript Object Notation的縮寫,它是一種數據交換格式。 道格拉斯·克羅克福特(Douglas Crockford)--雅虎的高級架構師--發明了JSON這種超輕量級的數據交換格式. 序列化 讓我們先把小明這個對象序列化成JSON格式的字符串: var xiaoming = { name: 小明, age: 14, gender...

    20171112 評論0 收藏0
  • Spring Boot簡略入門手冊

    摘要:事實上,的依賴包已經包含了,因此準確地說,只用即可。這個文件的內容初始是空的,表示全部使用的默認值。的自動刷新很久之前提到的依賴包終于派上用場了。修改任意文件后,按執行,瀏覽器就會在編譯完成后自動刷新。 引言 說起用Java語言來搭建Web項目,那么最令人熟知,也應用最廣的框架就是Spring MVC了。不過,Spring MVC的Web項目搭建起來并不是一件簡單的事,而如果你也像我這...

    MobService 評論0 收藏0
  • Spring 指南(構建RESTful Web服務)

    摘要:構建服務本指南將引導你完成使用創建服務的過程。接下來,你將創建將為這些問候語提供服務的資源控制器。告訴在包中查找其他組件配置和服務,允許它找到控制器。顯示日志輸出,該服務應在幾秒內啟動并運行。 構建RESTful Web服務 本指南將引導你完成使用Spring創建hello world RESTful Web服務的過程。 將要構建什么 你將構建一個接受HTTP GET請求的服務: ht...

    yzzz 評論0 收藏0
  • GitChat · 人工智能 | 用語音和自然語言控制智能家居——實例分享

    摘要:代碼下載語音和自然語言控制智能家居輸出協議實例源碼注下載代碼后請仔細閱讀說明文檔。表示處理來自接口的語義結果錄音處理為文字處理為是和的數據傳遞媒介,中會將需要的控件傳過去用來處理智能家居的語法解析和命令輸出。 GitChat 作者:晶晶郭原文:用語音和自然語言控制智能家居——實例分享關注公眾號:GitChat 技術雜談,一本正經的講技術 前言 ZigBee作為一種短距離、低功耗的無線通...

    妤鋒シ 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<