跳到正文
馬克工具箱

JSONPath 線上測試

輸入 JSONPath 表示式,從 JSON 中提取需要的資料,即時檢視匹配的值和每個結果的完整路徑。適合除錯介面測試、Kubernetes、日誌處理和低程式碼平臺裡用到的 JSONPath。

在瀏覽器本地執行,輸入的內容和檔案都不會上傳

JSON
結果

使用步驟

  1. 在左側貼上 JSON,或保留示例資料。
  2. 在上方輸入 JSONPath 表示式,也可以點選下面的常用表示式試試。
  3. 右側即時顯示匹配結果;點「顯示路徑」可以看到每個結果在文件中的位置。

引數說明

$ 和 @
$ 表示根節點;@ 表示過濾表示式中的當前節點,例如 [?(@.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 會上傳嗎?

不會。解析和查詢都在瀏覽器中完成。

隱私說明

本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。

相關工具