繁體中文

開發者工具 · JSON 格式化程式和驗證程序

閱讀縮小的 API 回應:為什麼漂亮的列印勝過瞇眼

· 為什麼它很重要

json 開發人員工作流程 驗證

讀取縮小的 API 回應:為什麼漂亮的列印勝過用 JSON 令牌和精確的驗證邊界說明的瞇眼
原始 ToolAcre 向量圖

縮小的 JSON 適用於機器。這篇文章解釋了為什麼伺服器會去除空格,當您針對單行進行調試時會丟失什麼,以及格式化如何將有效負載轉變為您實際上可以推理的內容。

一行三十KB

一行 30 KB — 來自網路面板的回應正文以及您在其中找不到的欄位。搜尋可以找到一個鍵,但幾乎無法提供有關其父物件、相鄰記錄或陣列邊界的上下文。水平掃描也使得重複的屬性名稱難以區分,這在分頁 API 負載中很常見。

格式化解析並重新序列化檔案。它揭示了結構,但可以規範數字拼字、轉義符和空格。此面板還報告形狀摘要,其中包含根類型、鍵或項目計數、深度和節點計數,使結果比單獨的外觀更容易檢查。當詞彙保真度很重要時,尤其是在大數字、指數符號和轉義文字方面,請保留原始回應。

為什麼伺服器要縮小——頻寬、壓縮互動和預設序列化器設置,以及為什麼這些都對人類讀者沒有幫助

為什麼伺服器要縮小——頻寬、壓縮互動和預設序列化器設置,以及為什麼這些都對人類讀者沒有幫助。刪除縮排會降低未壓縮位元組數,並避免花費 CPU 產生裝飾性空白。通用壓縮已經有效地折疊了重複的空間,因此轉移的節省可能小於原始差異,但緊湊的輸出仍然是傳統的。

機器消耗令牌而不是視覺對齊,並客戶端通常立即將正文解析為資料結構。研究一種回應的人類有相反的要求:穩定的換行和縮排揭示所有權和嵌套。漂亮地列印捕獲的副本以進行診斷,而不是要求生產端點發送詳細輸出,這可能會在事件期間改變快取、回應大小或伺服器行為。

格式化後什麼結構變得可見

格式化後哪些結構變得可見 - 巢狀深度、陣列長度、空物件以及隱藏在末端的 null。縮排顯示 `status` 是否屬於回應、專案或嵌入式擁有者。單獨的行公開重複的記錄,並使填充的物件中的單獨 `{}` 在視覺上明顯,而不改變解析的含義。

形狀摘要提供了另一種檢查:具有零項的數組根與包含空 `items` 數組的對象講述了不同的故事,而最大深度可能會暴露意外包裝的結果。格式設定還闡明了括號是否封閉了預期的容器。在編輯器中使用折疊來折疊不相關的分支並保持可疑值的路徑可見。

發現實際的錯誤

發現實際的錯誤 - 一個需要數字的字串、缺少鍵與空值、具有單一元素的陣列。漂亮的列印透過引號和文字使類型變得清晰:`"0"`、`0`、`false` 和 `null` 是四個不同的值,壓縮日誌在匆忙的審查過程中可能會變得模糊。

結構也區分缺席和明確的空虛。缺少 `nextCursor` 可能表示伺服器省略了分頁元資料,而 `"nextCursor":null` 可能有意標記最終頁面。空 `items` 陣列與缺少 `items` 屬性不同,後者會導致客戶端回退邏輯。格式顯示了這些區別,但 API 契約決定了哪種形式是正確的。

工作範例:分頁回應

工作範例:分頁回應 - 對其進行格式化,找到下一頁遊標並注意到 items 陣列為空。諸如 `{"items":[],"page":{"next":"abc","count":0}}` 之類的緊湊有效負載是有效的,但其遊標和計數與缺少記錄的情況發生衝突。縮排將分頁元資料與結果資料分開分組。

此視圖提出了具體問題:篩選器是否在計算遊標後刪除了所有項目,`count` 是本地頁面還是全部頁面,以及空白頁面是否應該存在下一個遊標?格式化程式無法回答這些問題,但它將一根不透明的行轉換為可以根據請求參數和檔案進行檢查的欄位。保留原始回應和狀態標頭作為證據。

比較兩個回應

比較兩個回應 - 使用相同的縮排設定格式,以便文字比較面板僅突出顯示真正的差異。一致的佈局可以防止一個有效負載的緊湊序列化與縮排副本產生整個檔案的差異。它使更改的值、插入的記錄和遺失的鍵佔據本地化的行,而不是移動不可讀的字元流。

在得出結論之前控制易失性欄位。即使業務資料穩定,請求 ID、時間戳記、簽章和無序集合也可能主導文字比較。如果成員順序是您需要保留的證據,請不要隨意對鍵進行排序,並記住數組順序就是資料。當訂購與合約無關但序列化有所不同時,最好進行結構感知比較。

這不包括什麼

這不包括什麼 - 解碼壓縮或編碼的主體,以及檢查二進位格式,例如協定緩衝區。顯示為 Base64、gzip 位元組或加密信封的正文必須先根據其內容編碼進行解碼。將這些字元提供給 JSON 解析器會產生一個語法錯誤,該錯誤沒有說明底層訊息。

漂亮列印也不會驗證 OpenAPI 模式、解釋伺服器狀態碼或證明客戶端反序列化使用相同的類型。它無法恢復被截斷的網路擷取或在有損 JavaScript 解析後保留確切的數位標記。對二進位有效負載使用特定於協定的工具,並保留標頭、請求上下文和原始位元組以及人類可讀的渲染。

重點:先格式化,再調試

重點:先格式化,然後偵錯-在形成理論之前使用格式化程式的縮排選擇來公開有效負載的層次結構。找到相關分支,驗證值類型並區分缺失、空和空狀態。當存在已知良好的樣本時,比較一種佈局下的響應,同時保留原始輸入以進行重新序列化可能標準化的詳細資訊。

可讀 JSON 減少視覺工作量;它不會取代 API 合約。可疑欄位可见後,檢查分頁定义、架構要求、状態標头和请求参數。 ToolAcre 在瀏覽器中執行此解析和格式化,因此所提供的檔案不會發佈到 ToolAcre 應用程式伺服器,但仍應根據策略最小化敏感擷取。