JSONPath 查詢和 JSONPath 建置工具
- Last Updated: October 16, 2024
- 6 minute read
JSONPath 建置工具是一個協助程式,公用程式在建立 REST API 主動和效能監控工具時會用到,此外在 REST API 主動和效能應用程式監控 (APM) 元件中也會用到。這個工具會協助使用者選取他們想要監控的 JSON 元素,然後為所選的 JSON 元素產生一個 JSONPath 查詢。
JSONPath 查詢可以兩種形式來撰寫,括號標記法和點標記法,例如:
-
[‘name’] -
$.name
本主題將說明 JSONPath 建置工具的工作流程以及支援的語法。
在 REST API 效能監控工具中的 JSONPath 建置工具
從監控工具資料庫加入一個新的 REST API 效能監控工具時, [新增 REST API 效能監控工具] 視窗將會開啟。此視窗中包含兩個相關的區塊, REST API 和 JSONPATH ,這兩個區塊會用在 JSONPath 建置工具 中。
提供一個 REST API 效能監控工具名稱、說明和逾時值,然後按照這些步驟來使用 JSONPath 建置工具:
- 指定您想要取得效能數據的 REST API URL 端點。
- (選用)使用 編輯自訂頁首 按鈕來加入自訂標頭。
- (選用)如果您需要隱藏憑證錯誤訊息,請選取 [忽略憑證錯誤] 。
- (選擇性步驟)選取 [使用匿名存取] 來略過傳送 REST API 認證到端點。這個選項只有在不需要身分驗證即可存取 REST API 端點時才適用。
- 按一下 [JSONPath 建置工具] 按鈕。如果 REST API URL 是有效的,將會開啟 JSONPath 建置工具視窗。在此視窗中,您可選取您想要監控效能資料的數值欄位。下面的影像顯示 JSONPath 建置工具視窗,影像中的範例為「兒童圖書館」資料:
- 按一下 [驗證] 來在端點上執行一項測試。如果效能監控工具可從 JSONPATH 端點值擷取一個數值結果,那麼就可儲存該監控工具並將其新增到效能監控工具資料庫中。下面幾個影像顯示 JSONPath 傳回一個有效數值到效能監控工具的範例,該 JSONPath 是使用 JSONPath 建置工具所建置的。
在 REST API 主動監控工具中的 JSONPath 建置工具
從監控工具資料庫加入一個新的 REST API 主動監控工具時, [新增 REST API 主動監控工具] 視窗將會開啟。此視窗中包含兩個相關的區塊, REST API 和 離線條件 ,後者包含了 JSONPath 查詢 資料格以供作為為監控工具新增離線條件的方法。當您選取放大鏡按鈕時, JSONPath 查詢 資料格會用到 JSONPath 建置工具。
使用 REST API 主動監控工具時,您可以定義多個 JSONPath 查詢以為監控工具評估一個離線狀態。此外不同於效能監控工具的是,主動監控工具支援針對數值、布林值、字串類型的變數來驗證離線條件。
在 JSONPath 建置工具中選取 JSON 元素時,JSONPath 查詢資料格會自動偵測元素的類型,並將其填入在 JSONPath 查詢資料格的 類型 資料欄中。
提供一個 REST API 主動監控工具名稱、說明和逾時值,然後按照這些步驟來使用 JSONPath 建置工具:
- 指定您想要取得效能數據的 REST API URL 端點。
- (選用)使用 編輯自訂頁首 按鈕來加入自訂標頭。
- (選用)如果您需要隱藏憑證錯誤訊息,請選取 [忽略憑證錯誤] 。
- (選擇性步驟)選取 [使用匿名存取] 來略過傳送 REST API 認證到端點。這個選項只有在不需要身分驗證即可存取 REST API 端點時才適用。
- 選取會將監控工具回報為離線的 HTTP 回應碼。
- 選取 + 按鈕來在 JSONPath 查詢資料格中新增一行。新增的行預設會是空白的。
- 在 JSONPath 查詢資料格中的空行內按兩下,然後選取放大鏡按鈕來開啟 JSONPath 建置工具。如果沒有勾選
[使用匿名存取]
按鈕的話,那麼這將會提示您輸入一個
REST API 認證
。接著將會開啟 JSONPath 建置工具視窗。在此視窗中,您可選取您想要監控離線條件的數值、布林值或字串類型端點。下面幾個影像顯示一個關於圖書館書籍的 API 樣本的離線條件範例:

- 按一下 [儲存] 來將監控工具加入「主動監控工具資料庫」。
在 REST API 效能應用程式監控 (APM) 元件中的 JSONPath 建置工具
REST API 效能應用程式監控 (APM) 元件運作的方式類似於 REST API 效能監控工具,不過另外還多了用於數值回應的警告和離線臨界值條件。REST API APM 元件可被附加到一部測試裝置上並經過驗證。下面幾個影像顯示一個數值 API 端點附帶著警告和離線臨界值的範例:
在 REST API 主動應用程式監控 (APM) 元件中的 JSONPath 建置工具
REST API 主動應用程式監控 (APM) 元件運作的方式類似於 REST API 主動監控工具,不過另外還多了一部可供附加 REST API 主動 APM 元件及驗證監控工具的測試裝置。
進階 JSONPath 查詢
如前所述,JSONPath 查詢可以兩種形式來撰寫,括號標記法和點標記法,例如:
-
[‘name’] -
$.name
如果有一個「books」的 JSON 陣列,其中陣列中第一個項目的名稱有「The Cat in the Hat」,那麼您可透過輸入以下其中一個 JSON 查詢來存取該值:
-
[‘books’][0]['name'] -
$.books[0].name
除了支援使用 JSONPath 建置工具來為 JSON 元素產生 JSONPath 查詢之外,您也可在 JSONPath 查詢中使用過濾條件來撰寫進階的查詢以驗證 JSON 回應。過濾條件可使用比較運算子來執行作業。除此之外,也提供「長度」屬性來傳回 JSON 陣列的長度。
這些屬性可用於 JSONPath 查詢過濾條件以根據條件來傳回值並過濾掉不需要的值。
下表列出所支援的比較運算子:
|
比較運算子名稱 |
比較運算子 |
範例(括號標記法) |
範例(點標記法) |
注意 |
|---|---|---|---|---|
|
等於 |
|
|
|
查詢傳回庫存中的「The Cat in the Hat」書本數量。 |
|
不等於 |
|
|
|
|
|
小於 |
|
|
|
舉例來說,如果「The Cat in the Hat」所包含的書本數量小於 3 本,那麼對於主動監控工具和主動 APM 元件來說,離線條件將會是一個包含「The Cat in the Hat」的字串。 |
|
小於或等於 |
|
|
|
|
|
大於 |
|
|
|
舉例來說,如果「The Cat in the Hat」包含的書本數量大於 1 本,那麼對於主動監控工具和主動 APM 元件來說,離線條件可能會是一個不包含 1(「The Cat in the Hat」的 bookId/書本 ID)的數字。 |
|
大於或等於 |
|
|
|
|
|
長度 |
|
|
|
傳回 JSON 陣列的長度。 |