🔍
JSONPath 查詢工具
使用 JSONPath 表示式查詢和提取 JSON 資料
JSON 輸入
JSONPath
範例:$.store.book[0].標題, $.store.book[*], $..author❓什麼是 JSONPath
JSONPath 是 JSON 的查詢語言,類似於 XML 的 XPath。它提供標準化語法,使用路徑表示式導航和提取複雜 JSON 結構中的資料。JSONPath 使用 $ 表示根物件,. 用於子存取,[] 用於陣列索引,* 用於萬用字元,.. 用於遞迴下降。它支援過濾器 [?(@.property > 數值)]、陣列切片 [開始:end:步驟] 和多選擇器。JSONPath 廣泛用於 API 測試、資料轉換、配置查詢和 JSON 操作任務。它簡化了從深度巢狀的 JSON 中提取特定值,無需編寫複雜的 JavaScript 程式碼。
✨功能特點
🔍
進階查詢語法
支援完整的 JSONPath 語法,包括萬用字元 (*)、遞迴下降 (..)、陣列切片 ([開始:end])、過濾器 ([?(@.price < 10)])和多路徑選擇器
📋
路徑表示式範本
預先建立的常用查詢範本:根存取 ($)、直接子節點 ($.金鑰)、陣列項 ($.arr[*])、過濾項 ($.arr[?(@.id)])、遞迴搜尋 ($..金鑰)
✨
即時預覽
即時執行查詢,帶語法醒目提示的 JSON 輸入和輸出,顯示比對路徑、結果計數,並在來源 JSON 中醒目提示比對節點
💾
結果匯出
將查詢結果匯出為 JSON(陣列或單一值)、表格資料的 CSV 或格式化文字,一鍵複製和下載選項
🎯
Use Cases
CODE
Development workflow
Use JSONPath Query Tool during implementation to generate, inspect, format, or verify technical assets without switching to heavier project tooling.
REVIEW
Code review and cleanup
JSONPath Query Tool helps review copied snippets, generated files, configuration fragments, and implementation details before they are committed or shared.
DOC
Technical documentation
Turn practical examples from JSONPath Query Tool into clearer pull requests, runbooks, onboarding notes, and API or SDK documentation.
📋使用指南
輸入 JSON 資料
貼上或上傳要查詢的 JSON 資料
編寫 JSONPath
輸入 JSONPath 表示式或使用常見模式範本
執行查詢
執行查詢以檢視帶語法醒目提示的比對結果
匯出結果
以您喜歡的格式複製或下載提取的資料
📚技術介紹
📝JSONPath 語法
JSONPath 表示式以 $(根物件)開頭,使用點符號 ($.property) 或括號符號 ($['property']) 進行存取。子節點使用 . 分隔符號 ($.store.book),陣列使用 [index] 或 [*] 表示所有項。陣列切片 [開始:end:步驟] 提取範圍,如 [0:3](前 3 項)或 [-1](最後一項)。遞迴下降運算子 .. 搜尋所有層級:$..author 尋找所有 author 屬性,無論巢狀深度如何。聯合運算子 [,] 選擇多個項:$[0,2,5] 獲取特定陣列索引。
🔍過濾器表示式
過濾器使用 [?(@.condition)] 語法選擇符合條件的項。@ 表示迭代中的當前節點。比較運算子:==、!=、<、<=、>、>=。邏輯運算子:&& (and)、|| (or)、! (不)。範例:[?(@.price < 10)] 選擇價格低於 10 的項;[?(@.category == 'fiction' && @.price < 20)] 組合條件。正規表示式比對:[?(@.名稱 =~ /pattern/)] 按正規過濾。過濾器可以使用 $ 參考根以進行跨階層比較:[?(@.price < $.maxPrice)]。
🔧實作變體
JSONPath 有多個實作,語法略有不同:Goessner 的原始版本(JavaScript)、Jayway(Java)、jsonpath-ng(Python)。差異包括過濾器運算子(有些使用 @ vs $)、正規支援、指令碼表示式和函式擴充。一些實作新增了函式,如 @.length、@.min()、@.max() 用於彙總。指令碼表示式 [(@.price * @.quantity)] 啟用計算。父運算子 ^ 和當前路徑 ~ 提供上下文。始終檢查目標實作的文件以瞭解支援的功能和語法特性。
🎯實際應用
JSONPath 在 API 回應解析中表現出色,從 REST API JSON 回應中提取特定欄位,無需完全反序列化。配置管理使用 JSONPath 查詢和更新巢狀配置值。資料轉換管線使用 JSONPath 將來源 JSON 對應到目標模式。測試框架(Postman、REST Assured)使用 JSONPath 斷言驗證回應結構和值。日誌分析從 JSON 格式的日誌中提取相關欄位。GraphQL 和 OpenAPI 工具使用 JSONPath 進行模式遍歷和驗證。效能:對於大型 JSON,考慮串流解析器或資料庫(MongoDB 的查詢語法、PostgreSQL 的 jsonb_path_query)。
❓
常見問題
❓
為什麼查詢沒有結果?
確認路徑以 $ 開頭、陣列索引正確、欄位名稱拼寫無誤。可先用簡短路徑逐步驗證。
💬
如何在所有層級尋找某個鍵?
使用遞迴下降運算子:$..author 會在所有層級尋找 author。
🔍
過濾器語法怎麼寫?
使用 [?(@.price < 10)],@ 表示當前項目;可用 &&、|| 組合條件,如 [?(@.category=='book' && @.price<20)]。
💡
空結果與 null 有何不同?
空結果代表沒有匹配;null 代表匹配項的值為 null。請檢查來源資料與路徑。
📚
大型 JSON 查詢很慢怎麼辦?
避免過度使用 ..;先縮小搜尋範圍再過濾,必要時將資料分段或在後端預處理。
🔗相關文件
User Comments
Loading...