跳至主要内容

工作流節點- JSON解析節點介紹


節點功能: 對於“代碼塊”或“發送API請求”的節點中輸齣的JSON對象,此節點可以通過JSON Path錶達式將指定內容輸齣為動態參數(變量、數組),供後續節點使用。

  • 可處理的數據: 來自代碼塊節點或發送API請求節點返迴的JSON對象

  • 可輸齣的數據: 變量或數組

場景示例: 通過物流查詢平臺API獲取某個快遞的曆史物流信息,寫入到物流信息子錶中,同時需要單獨獲取到最新的物流信息,寫入到當前位置字段中。 根據物流信息的Json對象,通過JSON Path錶達式可以將整個物流曆史信息的對象數據和單個最新物流信息分彆獲取並打包輸齣,供後續的批量新增節點和更新節點使用。

配置示例

1、先通過發送API請求節點,獲取物流信息

如下圖,根據快遞單號獲取到其物流信息,通過Json對象返迴。

2、添加 JSON解析節點

3、獲取JSON對象

即選擇哪個節點輸齣的JSON對象,這裏選擇獲取物流信息(API)這個節點。

4、查看解析結果

  • 1)點擊查看解析結果按鈕

  • 2)結果說明

    彈齣的解析結果中,將API返迴的JSON對象都做瞭說明,包括對應的參考值、JSON Path錶達式。

5、定義輸齣參數

  • 1)從解析結果中選擇參數

    例如,我們需要獲取整個物流信息和第一條物流信息。點擊右側的【生成參數】,就會自動添加對應的參數。

    如果您比較熟悉JSON Path錶達式,可以直接手動添加參數

  • 2)輸齣參數示例

    定義好輸齣參數後,下方會立即顯示對應的示例數據。

6、定義錯誤消息

當返迴匹配錯誤結果的 JSON 時,可以自定義中止輸齣參數時的錯誤消息。

  • 可以通過輸齣參數中獲取返迴值作為錯誤消息,以某個或多個值的條件對比,確定錯誤。

  • 錯誤的輸齣消息可以是靜態文本,也可以從其他節點中選擇動態值。

  • 如果定義瞭錯誤消息,則可以定義發生錯誤時,後續節點是否繼續執行。

    • 繼續執行

      後麵的節點繼續執行,如果之後有節點使用本節點對象或輸齣的數據時,將跳過對應的項(並不一定是整個節點調整,例如更新節點更新瞭5個字段,其中1個字段更新時使用瞭此節點的值,那麼隻有此字段不處理,其他字段正常更新)

    • 中止流程

      到此節點結束,後續節點不再執行。

7、使用JSON解析節點的輸齣參數

1) 將物流信息批量新增的工作錶

  • 獲取物流數組信息

    輸齣的數組類型必須先用獲取多條數據節點接收,轉換為平臺可識彆的數據結構。

  • 通過新增節點把數據批量寫入

2) 將最新物流信息寫入到本錶字段

非數組類型的可以直接從節點中選擇。

什麼是 JSONPath?

JSONPath 是參照 XPath 設計的一種對 JSON 格式文檔進行解析的工具。通過 JSONPath 錶達式,可以方便的從 JSON 結構中獲取到任意指定的數據,而無需經過手動層層的解析。工作流中的「JSON 解析」節點,可以對傳入的 JSON 數據用 JSONPath 進行解析後輸齣為參數供後續節點使用。

JSONPath 與 XPath

對瞭解 XML 的人來說都知道,XML 的一個經常被強調的優點就是有大量的工具來分析、轉換和有選擇地從 XML 文檔中提取數據。XPath 就是這些強大的工具之一。 JSONPath 錶達式則是一個類似的 JSON 工具。它可以直接描述 JSON 結構,與 XPath 錶達式引用 XML 文檔使用的方式相同。由於 JSON 結構通常是匿名的,並沒有一個 "根成員對象",所以 JSONPath 使用名稱 $ 來錶示最外層的對象。 例如我們用一個 XPath 來描述從 XML 結構中獲取根節點下 store 節點下第一本書的標題: /store/book[1]/title 同樣的 JSON 結構,我們可以用下麵的 JSONPath 來獲取該數據: $.store.book[0].title 或者 $['store']['book'][0]['title'] 以下是完整的 JSONPath 語法元素與 XPath 對應元素的用法比較:

篩選操作符

JSONPath 中可以使用篩選錶達式篩選齣符閤條件的節點。篩選錶達式需要返迴一個布爾值,然後 JSONPath 會篩選符閤條件的節點組成數組返迴。一個典型的篩選錶達式是 [?(@.age > 18)] ,其中 @ 代錶正在處理的當前節點。更復雜的篩選錶達式可以用邏輯運算符 && 和 || 來創建。字符串必須用單引號或雙引號括起來,如 [?(@.color == 'blue')][?(@.color == "blue")] 。 可用的操作符如下錶所示:

JSONPath 示例

下麵代碼錶示一係列物品(store)信息

  • 有3本書(book)和一個自行車(bicycle)
  • 每本書有類彆、作者、書名和價格信息
  • 自行車有顔色和價格信息
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}

則使用 JSONPath 可以獲取如下結果:


文檔問題反饋

文檔中是否有錯彆字、內容過期、難以理解等問題? 點此給我們反饋吧