使用步驟
- 在左側貼上 JSON,或保留示例資料。
- 在上方輸入 JSONPath 表示式,也可以點選下面的常用表示式試試。
- 右側即時顯示匹配結果;點「顯示路徑」可以看到每個結果在文件中的位置。
引數說明
- $ 和 @
- $ 表示根節點;@ 表示過濾表示式中的當前節點,例如 [?(@.price < 10)]。
- . 和 ..
- .name 取子節點;..name 遞迴查詢所有層級中名為 name 的節點。
- [*]、[0,1]、[-1:]
- 萬用字元、多個下標、切片(與 Python 切片相同,負數從末尾數)。
- [?(...)]
- 過濾表示式,支援比較(== != < <= > >=)、邏輯(&& || !)和判斷欄位是否存在,如 [?(@.isbn)]。
常用表示式
| 表示式 | 含義 |
|---|---|
$.store.book[*].author |
所有書的作者 |
$..price |
文件中所有 price |
$..book[?(@.price < 10)].title |
價格低於 10 的書名 |
$..book[-1:] |
最後一本書 |
$..book[0,1].title |
前兩本書的書名 |
$..book.length |
書的數量 |
常見問題
支援哪種 JSONPath 語法?
使用 jsonpath-plus 實現的 Goessner 語法,這也是 Jayway(Java)、大多數線上工具和介面測試軟體採用的寫法。它與 2024 年釋出的 RFC 9535 在過濾表示式等細節上略有不同。
過濾表示式能執行 JavaScript 嗎?
不能。過濾條件在安全模式下求值,只支援屬性訪問、比較和邏輯運算,不會執行任意程式碼。
結果為什麼總是陣列?
一個 JSONPath 表示式可能匹配多個節點,所以結果統一用陣列表示;只匹配一個時數組裡只有一項。
JSON 會上傳嗎?
不會。解析和查詢都在瀏覽器中完成。
隱私說明
本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。