JSONPath 測試器

輸入 JSONPath 表達式,即時查看 JSON 中符合的值和路徑。

JSON 輸入
符合值
輸入 JSON 和 JSONPath 表達式即可測試。

你的 JSON 和 JSONPath 會在瀏覽器本地測試,不會上傳到 BroBroGo。

常見問題

支援哪些 JSONPath 寫法?

可以用 $.store.book[*].title、$..price、[?@.price < 10] 篩選和陣列切片等常見 JSONPath 寫法。

為什麼每筆結果都有路徑?

路徑會標出符合值在原 JSON 內的位置,複製值時亦不會丟失來源。

為什麼查詢可能逾時?

非常寬泛的遞迴查詢或過大的樣本會執行太久。頁面會在短時間後停止這次查詢,讓你縮窄表達式或換小樣本。

透過 JSONPath 提取 JSON 數據

JSONPath 是一種用於在 JSON 文件中定位與提取特定資訊的查詢語言。本工具提供即時的反饋機制,當你輸入 JSON 數據與 JSONPath 表達式後,系統會立刻篩選並列出所有符合的數據,同時標示該數據在原始 JSON 結構中的完整路徑。這有助於 API 開發人員、測試人員、數據工程師及技術支援人員精確掌握表達式的選取結果,並在複製特定數值的同時保留其定位資訊。

輸入限制與規格

為了確保瀏覽器運作流暢,本工具設有以下輸入限制:

  • JSON 輸入:可接受的最大容量為 500,000 個字元。若超出此限制,系統將顯示「這段 JSON 太大,暫時無法測試。請換一段更小的樣本。」。
  • JSONPath 表達式:最大長度限制為 4,000 個字元。若輸入的表達式過長,系統會提示「這個 JSONPath 表達式太長,暫時無法測試。」。

支援的 JSONPath 語法與模式

本工具支援多種常見的 JSONPath 查詢模式,用以應對複雜的巢狀數據結構:

語法模式 說明與範例
遞迴下降 (Recursive Descent) 使用 .. 符號(例如 $..price)尋找不論層級深淺的所有指定鍵值。
過濾器表達式 (Filter Expressions) 使用 [?()] 語法(例如 [?@.price < 10])篩選出符合特定條件的物件。
陣列切片 (Array Slices) 對陣列進行範圍選取,精確提取特定索引區間的元素。

錯誤處理與異常狀態

在解析與執行查詢時,工具會針對不同的異常狀況即時顯示對應的錯誤訊息:

  • JSON 格式錯誤:若輸入的 JSON 數據不符合標準語法,系統會顯示「這段 JSON 不合法。」。
  • 表達式語法錯誤:若輸入的 JSONPath 語法有誤,系統會顯示「這個 JSONPath 表達式不合法。」。
  • 執行失敗:若表達式無法被正確評估,系統會顯示「無法執行這個 JSONPath。」。
  • 查詢逾時:為了防止瀏覽器因複雜查詢而當機,工具設有短暫的執行時間限制。若計算超時,系統會停止評估並顯示「這個 JSONPath 執行太久了。請縮窄表達式,或換一段更小的樣本。」。

查詢結果與顯示限制

當表達式成功執行後,工具會列出所有符合的數值與其詳細路徑。 本工具單次最多僅顯示 200 筆結果。若符合的數據超過此上限,結果計數器會顯示「符合:200+」,並附帶提示「僅顯示前 {max} 筆。」(其中 {max} 為 200)。若完全沒有找到相符的數據,則會顯示「沒有符合結果。」。在清空輸入框後,系統會顯示「已清空。」。

本地端處理與隱私保護

本工具的數據處理流程完全在用戶端進行。你的 JSON 數據與 JSONPath 表達式只會在瀏覽器本地測試,不會上傳到 BroBroGo 伺服器。

常見問題

支援哪些 JSONPath 寫法?

可以用 $.store.book[*].title$..price[?@.price < 10] 篩選和陣列切片等常見 JSONPath 寫法。

為什麼每筆結果都有路徑?

路徑會標出符合值在原 JSON 內的位置,複製值時亦不會丟失來源。

為什麼查詢可能逾時?

非常寬泛的遞迴查詢或過大的樣本會執行太久。頁面會在短時間後停止這次查詢,讓你縮窄表達式或換小樣本。