EvaluateJsonPath
編輯人:酷酷的誠 郵箱:[email protected]
描述
該處理器根據流文件的內容計算一個或多個JsonPath表達式。這些表達式的結果被寫入到FlowFile屬性,或者寫入到FlowFile本身的內容中,這取決於處理器的配置。通過添加用戶自定義的屬性來輸入jsonpath,添加的屬性的名稱映射到輸出流中的屬性名稱(如果目標是flowfile-attribute;否則,屬性名將被忽略)。屬性的值必須是有效的JsonPath表達式。“auto-detect”的返回類型將根據配置的目標進行確定。當“Destination”被設置爲“flowfile-attribute”時,將使用“scalar”的返回類型。當“Destination”被設置爲“flowfile-content”時,將使用“JSON”返回類型。如果JsonPath計算爲JSON數組或JSON對象,並且返回類型設置爲“scalar”,則流文件將不進行修改,並將路由到失敗。如果所提供的JsonPath計算爲指定的值,JSON的返回類型可以返回“scalar”。如果目標是“flowfile-content”,並且JsonPath沒有計算到一個已定義的路徑,那麼流文件將被路由到“unmatched”,無需修改其內容。如果目標是“flowfile-attribute”,而表達式不匹配任何內容,那麼將使用空字符串創建屬性作爲值,並且FlowFile將始終被路由到“matched”。
屬性配置
在下面的列表中,必需屬性的名稱以粗體顯示。任何其他屬性(不是粗體)都被認爲是可選的,並且指出屬性默認值(如果有默認值),以及屬性是否支持表達式語言。
屬性名稱 | 默認值 | 可選值 | 描述 |
---|---|---|---|
Destination | flowfile-content | ▪flowfile-content ▪flowfile-content |
指示是否將JsonPath計算結果寫入流文件內容或流文件屬性;如果使用flowfile-attribute,則必須指定屬性名稱屬性。如果設置爲flowfile-content,則只能指定一個JsonPath,並且忽略屬性名。 |
Return Type | auto-detect | ▪auto-detect ▪json ▪scalar |
指示JSON路徑表達式的期望返回類型。選擇“auto-detect”,“flowfile-content”的返回類型自動設置爲“json”,“flowfile-attribute”的返回類型自動設置爲“scalar”。 |
Path Not Found Behavior | ignore | ▪warn ▪ignore |
指示在將Destination設置爲“flowfile-attribute”時如何處理丟失的JSON路徑表達式。當沒有找到JSON路徑表達式時,選擇“warn”將生成一個警告。 |
Null Value Representation | empty string | ▪empty string ▪empty string |
指示產生空值的JSON路徑表達式的所需表示形式。 |
動態屬性:
該處理器允許用戶指定屬性的名稱和值。
屬性名稱 | 屬性值 | 描述 |
---|---|---|
用戶自由定義的屬性名稱 | 用戶自由定義的屬性值 | 在該處理器生成的文件流上添加用戶自定義的屬性。如果使用表達式語言,則每批生成的流文件只執行一次計算 . 支持表達式語言:true(只使用變量註冊表進行計算) |
連接關係
名稱 | 描述 |
---|---|
failure | 當不能根據流文件的內容計算JsonPath時,流文件被路由到這個關係;例如,如果流文件不是有效的JSON |
unmatched | 當JsonPath不匹配流文件的內容,並且目標被設置爲流文件內容時,流文件被路由到這個關係 |
matched | 當成功地計算了JsonPath並修改了流文件後,流文件將被路由到這個關係 |
讀取屬性
沒有指定。
寫屬性
沒有指定。
狀態管理
此組件不存儲狀態。
限制
此組件不受限制。
輸入要求
此組件需要傳入關係。
系統資源方面的考慮
沒有指定。
應用場景
通常當需要從流文件json中提取某些數據作爲流屬性時,使用此處理器;或者從流文件json內容中提取一部分內容作爲下一個流文件內容,使用此處理器。
示例說明
1:提取流文件json內容,作爲輸出流的屬性。(注意:當輸出選擇flowfile-attribute時,及時jsonpath匹配不到值,流文件也會路由到matched)
輸入json如下:
輸出結果如下:
2:提取流文件json內容,作爲輸出流的內容。(注意:當選擇flowfile-content時,用戶只能自定義添加一個屬性;如果jsonPath匹配不到,會路由到unmatched)
輸出流內容:
公衆號
關注公衆號 得到第一手文章/文檔更新推送。