JSONPath 查詢練習場

測試 RFC 9535 JSONPath 查詢,查看每個相符項目及其路徑

輸入

0 B / 10 MB

查詢

以 $ 開頭。按 Ctrl/⌘+Enter 執行查詢。

結果

執行查詢後,相符項目會顯示在這裡。

貼上 JSON、開啟檔案或載入範例。

符合 RFC 9535 的 JSONPath,由 jsonpath-rfc9535 1.3.0 在瀏覽器背景工作中計算。

什麼是 JSONPath 查詢練習場?

用於 RFC 9535 JSONPath 的練習場。JSONPath 是 IETF 制定、用來在 JSON 文件中選取節點的標準。貼上 JSON,撰寫類似 $.store.products[?@.price < 50].name 的查詢,就能看到每個相符項目的值、正規化路徑與 JSON 指標。可用來為 API 測試、設定工具、OpenAPI overlay 或 Kubernetes 風格的工具撰寫選擇器,並確切查看選取了哪些節點。若要轉換或重組 JSON,請使用以 jq 為基礎的 JSON 查詢練習場;若要依文字尋找鍵或值,請使用 JSON 搜尋。

支援的語法

根節點 $、成員名稱($.name 與 $['name'])、包含負數的陣列索引([0]、[-1])、萬用字元([*] 與 .*)、可加步長的切片([1:5]、[::-1])、同一方括號中的多個選擇器([0,2] 或 ['a','b'])、子孫(..name 與 ..*)以及篩選器。篩選器([?…])使用 == != < <= > >= 比較,以 && || ! 與括號組合,並以 ?@.member 檢查是否存在:只要成員存在,即使值為 false 或 null,此檢查也為真。可使用 RFC 的五個函式:length()、count()、match()、search() 與 value()。「語法範例」中的每一項都會為「商店目錄」範例載入一個查詢。

match() 與 search() 的正規表示式

match() 與 search() 接受 I-Regexp(RFC 9485)模式,這是一個小巧且可互通的正規表示式子集。match() 必須比對整個字串,search() 則在字串任意位置尋找模式。預設啟用 Unicode,點號可比對換行以外的任何字元。反向參照、前後環視、惰性量詞與旗標都不屬於 I-Regexp;請避免使用,因為其他 JSONPath 實作會拒絕或忽略它們。

正規化路徑與 JSON 指標

每個相符項目都會列出正規化路徑,也就是 RFC 9535 的標準形式,例如 $['store']['products'][0]['name'],成員名稱中的撇號、反斜線與控制字元會被跳脫。也會列出對應的 RFC 6901 JSON 指標,例如 /store/products/0/name,其中 ~ 變成 ~0,/ 變成 ~1;整份文件是空指標。路徑可用於測試,指標可用於 JSON Patch 操作或 $ref 值。

限制與隱私

查詢在瀏覽器的背景工作中執行;不會上傳或儲存任何內容,只會記住所選的結果顯示方式。256 KB 以內的輸入會在輸入時重新執行;較大的輸入(最多 10 MB)在按「執行」後才執行,每次執行在 15 秒後停止。清單顯示前 2,000 個相符項目,而計數與「複製全部」動作包含所有相符項目。此工具只選取節點,不轉換資料。腳本運算式或 ~ 鍵運算子等舊的非標準擴充會被視為語法錯誤,@.length 讀取的是名為 length 的成員(取得大小請用 length(@))。超出 JavaScript 精度的數字會顯示為最接近的可表示值。

CodingTool 已正式上線於

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch