跳至主要內容
SPCXTools

JSON 比對

透過詳細的路徑比對,快速找出兩個 JSON 物件之間的差異。

本機執行 — 檔案絕不會離開您的裝置

正在載入工具…

如何使用 JSON 比對

  1. 1將原始 JSON 貼到左側面板,修改後的 JSON 貼到右側面板。
  2. 2工具會立即解析資料,並顯示新增、移除與修改欄位的摘要。
  3. 3如果想在不考慮順序的情況下比對陣列內容,請勾選「忽略陣列順序」。
  4. 4檢視詳細的變更列表,其中會顯示確切的 JSON 路徑以及新舊數值。
  5. 5點擊「複製」按鈕,將純文字格式的差異報告複製到剪貼簿。

快速且注重隱私的 JSON 差異比對工具

處理複雜的資料結構時,要找出單一修改過的值或遺失的鍵值往往令人相當頭痛。這款 JSON 比對工具專為即時分析而設計,能清楚標示出兩個 JSON 資料間的確切差異。您無須逐行檢查數千行程式碼,就能獲得一份簡潔、結構化的報告,一目了然地看出所有變更。

由於本工具完全在您的瀏覽器中執行,因此能以完全保障隱私的方式進行線上 JSON 比對。您的資料絕不會上傳至伺服器或儲存在資料庫中。您可以安心貼上專有的 API 回應、客戶資料或敏感的環境設定,完全不必擔心資料外洩的風險。

JSON 深度比較的運作原理

如果您想比較兩個 JSON 檔案,使用一般的純文字差異比對工具通常會產生誤判。純文字工具會逐行比較資料。如果修改後的 JSON 縮排不同,或者物件中的鍵只是順序不同,文字比對就會將整個區塊標示為已變更。

本工具的運作方式則有所不同。它會將文字解析為實際的 JavaScript 物件,並針對資料結構本身進行深度的遞迴比較。它會忽略空白字元、縮排以及物件鍵的順序。如果 {"status": "ok", "code": 200} 變成 {"code": 200, "status": "ok"},本工具會判定它們完全相同。

當發現差異時,它會使用標準的點記法與中括號語法,產生指向變更處的精確路徑。舉例來說,如果陣列中的第三個標籤發生變更,本工具會直接為您指出 tags[2],而不是只在龐大的檔案中反白標示某一行。

處理陣列:嚴格比對與忽略順序

在 JSON 比對工具中,最常見的挑戰之一就是處理陣列。有時候,陣列中項目的順序具有嚴格的意義;但有時候,陣列只是一組無序的項目列表,您只在乎內容是否相符。

預設情況下,本工具會嚴格依照索引來比對陣列。它會檢查原始資料的第一個項目是否與修改後資料的第一個項目相符,依此類推。

如果您勾選 忽略陣列順序 選項,工具的比對方式將會改變。它會在比對前,將兩個陣列的內容序列化並依字母順序排序。這表示如果您的原始陣列是 ["apple", "banana"],而修改後的陣列是 ["banana", "apple"],工具將會顯示沒有任何差異。當您在比對來自不保證特定排序的資料庫 API 回應時,這項功能將非常實用。

常見應用場景

**API 回應除錯。**當 API 端點突然失效時,將過去正常的回應與現在失敗的回應進行比對,是找出問題癥結最快的方法。貼上兩份 Payload,就能立刻看出是否有鍵 (key) 被重新命名、資料型別從字串變成整數,或是巢狀物件遭到移除。

**審查設定檔。**現代應用程式高度依賴 JSON 設定檔,例如 package.json、tsconfig.json 或雲端部署範本。在提交 (commit) 變更前,可使用此工具準確確認更新了哪些相依套件,或是更改了哪些設定。

**資料庫紀錄稽核。**如 MongoDB 等文件資料庫,會將紀錄儲存為類似 JSON 的結構。若需稽核特定使用者資料或文件隨時間的變更情況,將歷史 JSON 匯出檔與目前狀態進行比對,就能清楚呈現新增、移除與修改欄位的稽核軌跡。

了解輸出結果

在兩個面板中貼上有效的 JSON 後,工具會產生一份摘要和詳細的變更清單:

  • 新增 (+): 存在於修改後的 JSON 中,但不存在於原始版本中的鍵或陣列項目。這些項目會以綠色標示。
  • 移除 (−): 存在於原始 JSON 中,但在修改後版本中消失的鍵或陣列項目。這些項目會以紅色標示。
  • 變更 (~): 存在於兩者中,但數值不同的鍵(例如字串已更新,或布林值從 true 變成 false)。這些項目會以黃色標示,並同時顯示新舊數值。

如果您需要與同事分享比對結果,或將其貼到錯誤回報中,可以使用 複製 按鈕。這會複製一份乾淨的純文字摘要,包含所有變更的路徑及其相關數值。

若要進一步處理資料,您可以先使用 JSON 格式化工具 來排版雜亂的資料;或者在確認 JSON 結構後,使用 JSON 轉 TypeScript 轉換器來產生型別定義。

常見問題

JSON 比對工具如何處理陣列?
預設情況下,陣列會嚴格依照索引順序進行比對。若您勾選「忽略陣列順序」,工具會在比對前先依內容對陣列進行排序。這在項目順序不重要,但資料本身必須完全相同時非常實用。
我的 JSON 資料會被傳送到伺服器嗎?
不會。所有的解析與比對都是透過 JavaScript 在您的瀏覽器中本地執行。您的資料絕不會被上傳,因此對於機密的 API 回應、資料庫匯出檔或私人設定檔來說,使用本工具絕對安全。
如果我的 JSON 格式無效會怎樣?
工具會在文字方塊下方顯示錯誤訊息,指出解析失敗的位置。您必須在兩個面板中都提供有效的 JSON 才能進行比對。
我可以對調原始與修改後的 JSON 嗎?
可以,點擊「對調」按鈕即可立即切換左右面板。這會反轉被視為「新增」或「移除」的基準視角。
巢狀物件是如何比對的?
工具會遞迴遍歷巢狀物件與陣列,並為找到的每一個差異產生精確的路徑(例如 "user.address.city" 或 "items[2].id")。
為什麼要使用這個工具,而不是一般的文字比對工具?
一般的文字比對工具是逐行比對文字。如果同一個 JSON 物件的鍵 (keys) 順序不同,文字比對工具會將其視為大幅度的變更。而 JSON 比對工具會解析實際的資料結構,因此它能判斷出 {"a":1, "b":2} 和 {"b":2, "a":1} 是完全相同的。