JSONPath 測試器
JSONPath 表達式
JSON 輸入
結果
| 語法 | 說明 |
|---|---|
| $ | 根物件或陣列 |
| @ | 目前節點(用於篩選表達式) |
| object.property | 點號表示法的子節點 |
| ['object'].['property'] | 中括號表示法的子節點或子節點集合 |
| ..property | 遞迴向下搜尋 |
| * | 萬用字元。選取所有元素 |
| [n] | 從陣列中選取第 n 個元素 |
| [n1,n2] | 選取第 n1 與 n2 個陣列項目(聯集) |
| [start:end:step] | 陣列切片運算子 |
| ?(expression) | 篩選表達式 |
| (expression) | 腳本表達式 |
技術細節
JSONPath 測試器的運作方式
工具功能說明
JSONPath 測試器可讓你使用 JSONPath 表達式查詢巢狀 JSON 資料,類似於 XPath 對 XML 的運作方式。此 jsonpath 測試器同時具備 JSONPath 表達式測試器與 json 選擇器的功能,協助開發者從複雜的 JSON 結構中擷取特定的值、陣列或物件。當你需要線上測試 jsonpath 時,這個工具會顯示所有符合的值及其路徑。它支援包含點記法( $.store.book)、括號記法( $['store']['book'])、萬用字元( $..*)、陣列切片與篩選表達式等 JSONPath 語法。此工具遵循 jsonpath-plus 的語意;JSONPath 的實作各有差異,因此若你的表達式在其他地方可用但在此不可用,可能是方言差異所致。它同時顯示匹配到的值與 JSONPath 路徑,讓你更容易理解表達式如何在 JSON 結構中進行導覽。
常見的開發者使用情境
開發者在處理 API 回應、設定檔或複雜的巢狀 JSON 資料結構時會使用 JSONPath 測試器。JSONPath 表達式測試器可協助從深層巢狀物件中擷取特定欄位、依條件篩選陣列,或找出某個鍵在各處出現的位置。許多開發者使用 JSONPath 測試器來查詢 REST API 的 JSON 資料、解析日誌檔,或在複雜的設定物件中導覽。此工具在除錯資料轉換、驗證 API 回應或理解複雜的 JSON schema 時非常有價值。在執行 JSONPath 查詢前,你可能會想先使用 JSON Formatter 格式化 JSON 以提升可讀性。對於設定檔,JSON ↔ YAML Converter 可協助在格式間轉換。檢視陣列資料時,JSON Array to Table 工具可將結果匯出為表格格式,便於分析。
資料格式、型別或變體
JSONPath 提供多種方式在 JSON 結構中導覽。此工具支援根選擇器($)、子節點選擇器(. 或 [])、後代選擇器( ..)、陣列索引([0]、[-1])以及陣列切片( [0:3])。開發者常用的 JSONPath 表達式包括:
$.items[*].id— 從 items 陣列中擷取所有 id 欄位$..id— 在任何巢狀層級找出所有 id 欄位$['key-with-dash']— 存取含有特殊字元的鍵$..book[?(@.price < 10)].title— 依價格篩選書籍並擷取標題
這些表達式示範了 JSONPath 如何查詢巢狀陣列、依條件篩選物件,以及從複雜結構中擷取特定欄位。
常見陷阱與邊界情況
常見錯誤之一是把 JSONPath 與 JavaScript 物件屬性存取混為一談,因為 JSONPath 在陣列篩選與萬用字元的語法上不同。另一個問題是理解何時使用點記法與括號記法:點記法適用於簡單鍵名,但若鍵名含特殊字元或需要使用表達式,則必須使用括號記法。陣列索引也可能很棘手:像 [-1] 這樣的負索引代表最後一個元素,但並非所有 JSONPath 實作都支援。篩選表達式必須使用正確的比較運算子,並以 @ 參照目前項目。後代選擇器(..)若匹配到比預期更多的元素,可能會回傳意外結果。開發者應使用各種 JSON 結構測試 JSONPath 表達式,包含空陣列、null 值與深層巢狀物件等邊界情況。有些 JSONPath 實作在處理邊界情況時存在細微差異,因此測試至關重要。
錯誤與驗證
使用 JSONPath 時可能會遇到多種錯誤情況。無效的 JSON 輸入會在評估 JSONPath 表達式之前就產生解析錯誤。無效的 JSONPath 表達式會回傳錯誤訊息,指出語法哪裡有問題。當表達式在 JSON 結構中沒有匹配到任何值時,會以空陣列回傳空結果——這是正常行為,不是錯誤。此工具會同時驗證 JSON 語法與 JSONPath 表達式語法,並針對格式不正確的輸入提供清楚的錯誤訊息。若你的 JSONPath 表達式有效但沒有結果,可能是表達式與 JSON 資料結構不相符,或資料中不包含預期的欄位。
何時使用此工具 vs 程式碼
使用此 JSONPath 測試器可快速開發查詢、除錯複雜表達式或探索 JSON 資料結構。它非常適合在將 JSONPath 表達式實作到程式碼之前先行測試,尤其是在處理不熟悉的 API 或複雜的巢狀資料時。視覺化回饋有助於找出表達式為何會(或不會)匹配到特定資料。對於正式環境程式碼,請使用整合到應用程式中的 JSONPath 函式庫,以高效率處理 JSON 資料。瀏覽器工具擅長互動式開發與探索,而以程式碼為基礎的解決方案則提供效能、型別安全與與資料處理管線的整合。對於大型資料集或高效能應用程式,使用你所用程式語言的原生 JSONPath 實作通常比瀏覽器工具效能更佳。