快速、注重隱私的 JSONPath 測試工具
處理龐大或多層巢狀的 JSON 資料時,要擷取所需的精確資訊往往非常繁瑣。這款 JSONPath 測試工具提供了一個即時環境,讓您可以撰寫、測試並對查詢進行除錯。當您輸入表達式時,工具會立即針對您的 JSON 資料進行解析,同時顯示擷取到的值以及這些值所在的精確路徑。
由於這是一個完全在用戶端執行的 JSON 路徑解析器,所有的處理過程都在您的裝置上本機完成。您的 JSON 資料絕不會傳送到伺服器。這表示您可以安全地貼上正式環境的 API 資料、資料庫匯出檔或敏感的設定檔,完全不必擔心資料外洩或隱私問題。
開發者核心功能
- 即時解析: 當您修改 JSON 資料或查詢時,結果會立即更新。無需點擊送出按鈕或等待伺服器回應。
- 安全解析: 本工具使用安全的解析引擎(
eval: 'safe')來處理您的查詢,在防止惡意程式碼執行的同時,依然完整支援複雜的過濾表達式。 - 路徑擷取: 除了顯示符合的值之外,工具還會產生每個比對結果的絕對路徑。如果您稍後需要透過程式更新這些特定節點,這項功能將非常實用。
- 內建範例: 如果您對語法還不熟悉,可以載入書店範例資料集,並點擊幾個預先寫好的表達式,了解不同運算子的運作方式。
如何撰寫 JSONPath 查詢
JSONPath 使用特定的語法來導覽 JSON 物件與陣列。如果您想測試 JSONPath 運算式的邏輯,了解以下基本運算子會很有幫助:
$代表根物件或陣列。所有絕對路徑的 JSONPath 運算式都以這個符號開頭。@代表目前正在處理的節點。主要用於篩選運算式中。.或[]是用來選取屬性的子節點運算子。例如,$.store.book和$['store']['book']的作用完全相同。..是遞迴下降運算子。它會在 JSON 樹狀結構中的任何位置搜尋特定鍵值,無論巢狀層級有多深(例如,$..price會找出所有的價格)。*是萬用字元,用來比對物件或陣列中的所有元素。例如,$.store.*會選取 store 物件下直接包含的所有內容。[?()]用於套用篩選運算式。您可以在其中使用標準的邏輯運算子。例如,$..book[?(@.author == 'Nigel Rees')]會找出由該特定作者所寫的所有書籍。[start:end:step]允許您對陣列進行切片,用法類似 Python。$.store.book[-1:]會選取陣列中的最後一本書。
常見使用情境
API 開發與除錯。 現代的 REST 與 GraphQL API 經常回傳龐大的 JSON 資料。與其撰寫臨時程式碼來解析和檢查回應,您可以將資料貼到這個 JSONPath 線上工具中,快速驗證資料結構是否正確,並確認您的查詢能擷取出正確的欄位。
自動化測試。 在撰寫整合測試或端對端測試時(使用 Postman、RestAssured 或 Playwright 等工具),您經常需要斷言 (assert) JSON 回應中是否存在特定值。使用 jsonpath 測試工具可以幫助您在將查詢字串寫死 (hardcode) 到測試套件之前,先將其調整到最佳狀態。
資料擷取與轉換。 如果您正在進行資料轉移或建置 ETL (擷取、轉換、載入) 管線,通常會需要獨立出特定的陣列或物件。您可以使用此工具找出擷取目標資料所需的確切路徑。如果您的來源資料是 XML 格式,可以先使用 XML 轉 JSON 轉換器;若在檢查前需要將壓縮過 (minified) 的資料格式化,JSON 格式化工具 能派上用場。您也可以使用 JSON 比對工具 來查看資料在轉換前後的差異。