跳至主要內容
SPCX Tools

JSONPath 測試工具

直接在瀏覽器中即時測試與驗證 JSON 資料的 JSONPath 表達式。

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

正在載入工具…

如何使用 JSONPath 測試工具

  1. 1將 JSON 資料貼上或輸入至左側面板,或點擊「範例」載入範例資料。
  2. 2在頁面頂部的輸入框中輸入您的 JSONPath 表達式。
  3. 3點擊輸入框下方的快速範例按鈕,查看常見查詢模式的實際執行結果。
  4. 4在右側面板查看比對結果、總比對數量,以及符合元素的精確路徑。

快速、注重隱私的 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 比對工具 來查看資料在轉換前後的差異。

常見問題

什麼是 JSONPath?
JSONPath 是一種用於 JSON 資料的查詢語言,類似於 XML 的 XPath。它能讓您使用簡潔的字串表達式,從複雜的 JSON 結構中選取並擷取特定的節點、陣列或數值。
我的 JSON 資料安全嗎?
是的。此工具完全在您的瀏覽器中本機執行。您的 JSON 資料和查詢都不會上傳到任何伺服器,因此用來測試敏感的 API 回應、設定檔或專有資料絕對安全。
如何根據特定條件篩選資料?
您可以使用語法為 [?(@.property == 'value')] 的篩選表達式。例如,$.store.book[?(@.price < 10)] 會傳回 store 陣列中所有價格小於 10 的書籍。
我可以查看相符元素的確切位置嗎?
可以。在主要結果輸出下方,有一個可展開的「Paths」區塊。展開後會顯示結果集中每個相符元素的確切、絕對 JSONPath。
為什麼我會收到「Invalid JSON」錯誤?
JSON 的格式要求非常嚴格。請確保所有的鍵和字串值都使用雙引號包覆(而非單引號),並且在物件或陣列的最後一個項目之後沒有多餘的逗號。
本工具使用哪種 JSONPath 規範?
本工具使用廣受歡迎的 jsonpath-plus 函式庫,完全支援原始的 JSONPath 規範,同時加入了一些安全的擴充功能以應付更複雜的查詢。它不使用 JavaScript 的 eval() 函式,能安全地解析表達式。