Command Palette

Search for a command to run...

JS

JSONPath 測試儀

根據任何 JSON 測試 JSONPath 表達式,並立即查看匹配的值及其路徑。支援通配符、遞歸下降、切片和過濾器。 100% 客戶端。

什麼是 JSONPath 測試儀?

JSONPath 測試人員根據 JSON 文件評估 JSONPath 表達式,並傳回表達式選擇的每個值以及每個匹配的確切路徑。 JSONPath 是 JSON 的查詢語言,就像 XPath 是 XML 的查詢語言一樣:您編寫一條短路徑,例如 $。store。book[*]。author 並返回匹配值列表,而無需編寫任何程式碼。此工具解析您的 JSON,運行表達式,並顯示每個結果和歸一化路徑。

測試人員的重點是回饋。當 JSONPath 表達式不傳回任何內容或傳回的次數超出您的預期時,問題幾乎總是一個小的語法細節:缺少通配符、錯誤的括號樣式或將字串與數字進行比較的過濾器。根據真實資料即時運行查詢,並查看它接觸的節點,會將猜測變成兩秒鐘的檢查。這也是開發人員在編輯器旁邊保留正規表示式測試儀打開的原因。

一切都在您的瀏覽器中運行。 JSON 使用內建 JSON 解析器進行解析,表達式由用 JavaScript 編寫的小型解釋器進行評估,因此不會上傳、記錄或儲存任何內容。這很重要,因為 JSONPath 工作通常會針對攜帶令牌、ID 或客戶記錄的 API 回應和設定文件進行,並且該工具會將該有效負載保留在您自己的電腦上,並在頁面載入後保持離線工作。

JSONPath 是一個具有多種實作而不是單一規範的約定,它們在邊緣上存在分歧。過濾器語法是最不便攜的部分,因此在一個庫中工作的表達式可能需要在另一個庫中進行調整。遞歸下降是昂貴的操作:它遍歷文件中的每個節點,因此在大檔案上,以兩個點開頭的查詢明顯比明確路徑慢。

若要嘗試作為 JSONPath 線上評估器,請按一下載入範例,將表達式替換為 $。store。book[?(@。price < 10)]。標題並按一下 Evaluate。值模式傳回 ["Sayings of the Century", "Moby Dick"],窗格標記為 2 個結果。將輸出切換到路徑並再次按一下"評估",相同的查詢傳回$。store。book[0]。title 和$。store。book[2]。title,它會告訴您過濾器跳過索引1 和3 處的書籍。將表達式更改為$。。價格,您將獲得五個數字,因為遞歸下降也到達自行車。

如何使用 JSONPath 測試儀?

  1. 貼上你的 json

    將物件或陣列貼到 JSON 框中,或按一下書店文件的載入範例。輸入必須是有效的 JSON;瀏覽器自己的訊息會顯示解析錯誤,該訊息通常會命名位置以便您可以修復它。

  2. 編寫 JSONPath 表達式

    輸入 $。store.book[*].title 或 $。。price 等路徑。從 $ 開始為根,為子級使用點或括號,然後新增過濾器,例如 [?(@。price < 10)] 以按值選擇。

  3. 閱讀比賽

    點擊"評估"以運行表達式;匹配窗格列出了每個匹配的值並顯示結果計數。將輸出切換到路徑或條目,然後再次按一下"評估",以查看每個結果來自哪裡。

  4. 複製結果

    將匹配的值、路徑清單或完整的路徑和值條目複製為 JSON,以貼上到程式碼、測試或文件中。

主要特點

  • 全路徑語法

    根、子、遞歸下降 (...)、通配符 (*)、包含負索引的數組索引、並集和 Python 樣式切片均受支持,因此大多數已發布的 JSONPath 範例均保持不變。

  • 過濾表達式

    使用 [?(@。price < 10 & & @。category == "fiction")] 等過濾器按值選擇節點。比較運算子、存在性校驗和 &&/||每個元素評估組合。

  • 值、路徑或條目

    將匹配值、每個匹配的標準化路徑或兩者一起視為條目。路徑輸出對於建立所需的表達式非常方便。

  • 清除錯誤訊息

    無效的 JSON 和格式錯誤的表達式會與特定訊息單獨報告,因此您知道是修復資料還是查詢,而不是盯著空結果。

Frequently Asked Questions

JSONPath 是 JSON 的查詢語言,以 XML 的 XPath 為模型。 $。store。book[0]。title 等表達式描述了穿過文件的路徑,並評估它返回該路徑上的一個或多個值。它廣泛應用於 API 測試工具、網關和配置系統中,以提取或匹配 JSON 有效負載的部分內容。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

jsonpath testerjsonpath evaluatorjson path onlinetest jsonpathjsonpath queryjsonpath filterjsonpath expressionquery jsonjsonpath onlinejsonpath online evaluatorjsonpath evaluator onlinejsonpath filter examples