1. 概述
1.1 版本
FineDataLink 版本 | 功能變動 |
---|---|
4.0.19 | - |
4.1.7.2 | 介面優化 |
4.1.14.1 | 支援設定分組欄位,可按照分組欄位合併JSON欄位 |
4.2.5.2 |
|
1.2 應用場景
當使用者需要使用 API 匯出實現將 API 資料寫入指定API時,可能需要將資料庫或者其他形式的資料生成為 JSON 格式,以便進行資料交互。
1.3 功能說明
FineDataLink 支援使用 JSON 生成算子,生成 JSON 格式資料。
2. 功能說明
2.1 JSON 欄位
欄位名稱:從上游匯出中選擇欄位進行組裝生成 JSON 物件,預設欄位名稱為「JSON_DATA」,使用者可自行修改名稱。
按分組欄位合併 JSON 欄位:將生成的 JSON 欄位按照指定的欄位進行分組匯出。
分組欄位介紹:
注:分組欄位功能可解決簡道雲子表單增刪改同步問題,詳情請參見多个简道云子表单增删改输出
2.2 JSON 設定
2.2.1 設定格式
預設為使用者建立一個物件,允許使用者新增、刪除物件的鍵-值,值支援設定為子物件和子陣列進行嵌套(值為子物件或子陣列代表一層嵌套),且根據使用者的配置支援生成多個 JSON 物件。
配置提供四個選項設定,鍵、值類型、值、值格式。
鍵:使用者自訂選擇鍵名
值類型&值:值類型提供 欄位、子物件、子陣列 三個選項。
4.2.5.2 及之後的版本支援自訂固定值,如下圖所示:
值格式:提供 字串、數值、布林型 三種選項,預設使用前面選擇的值欄位的類型進行填充,如果欄位值為數值、則生成的值為數值(不帶雙引號),如果欄位值為 true/flase、則生成的值為邏輯值 true/flase(不帶雙引號),否則為字串;當使用者選擇「字串」時,一律將值設定為字串(帶雙引號);在運作時,需要將實際的資料流欄位的類型,按照使用者設定的類型進行強制轉換,轉換失敗則報錯;對於子陣列,只允許在前端新增一行值,且值的類型只允許為欄位或子物件。
2.2.2 快捷生成和清空
提供「快捷生成」和「清空」設定:
「按欄位自動生成」:將流入算子的資料流欄位自動生成一個物件,在物件內為每個欄位建立為一個鍵-值,鍵為欄位名、值為欄位值、不包括嵌套。
「按JSON模版生成」:按照貼上的 JSON 格式進行 JSON 設定,如下圖所示:
清空:允許使用者透過清空配置選項,實現一鍵清空配置表。
2.2.3 整體生成陣列
勾選「整體生成陣列」後,會將設定的 JSON 整體變為[]陣列,如下圖所示:
3. 約束限制
JSON 配置表內,嵌套不能超過三層。注:4.2.5.2 及之後的版本已經支援。
JSON 配置表內,同一嵌套層級的子陣列只能新增一個。
單個欄位只允許在JSON生成算子內被選擇一次,已被選過的欄位置灰提示。注:4.2.5.2 及之後的版本已經支援。
如果欄位值為數值、則生成的值為數值(不帶雙引號),如果欄位值為 true/false、則生成的值為邏輯值 true/false(不帶雙引號),否則為字串;
當使用者選擇“字串”時,一律將值設定為字串(帶雙引號);
對於子陣列,只允許在前端新增一行值,且值的類型只允許為欄位或子物件;
同一層級內鍵名不允許重名,跨層級允許鍵名重名。
4. 操作步驟
範例資料:dw_comment.xls
API匯出 中需要將資料表中的使用者資料生成 JSON 格式後,透過 API 匯出對接業務系統,將資料推播寫入業務系統API中,觸發業務系統流轉任務,實現資料交互。
本文以 API匯出 中的 JSON 生成範例詳細說明用法。
3.1 取出資料
用「資料轉換」節點,進入編輯介面後,拖入「DB表輸入」算子,SQL 語句取出需要進行 API 匯出的資料,如下圖所示:
點選預覽資料,如下圖所示:
3.2 JSON設定
由於需要API寫入的API資料需要 JSON 格式,所以需要將原先的資料庫表形式資料轉換成 JSON 格式。
JSON 樣式如下:
{
"fields": {
"summary": "文檔很贊",
"components": {
"name": [
"FR10"
]
},
"customfield_14904": "https://help.fanruan.com/finereport10.0/doc-view-2463.html",
"description": "根據參數動態顯示地圖區域"
}
}
新增 JSON 生成算子,設定匯出 JSON 欄位名,並進行 JSON 配置。
點選 JSON 設定中的新增,開始 JSON 設定,如下圖所示:
輸入第一個鍵 fields,然後設定子物件,如下圖所示:
在嵌套的子物件中,輸入鍵並選擇對應的欄位「comment」作為值,如下圖所示:
同時支援調整值類型,類型支援「字串」、「數值」和「布林型」,如下圖所示:
若選擇自動生成 JSON ,則效果如下:
將流入JSON生成算子的資料流欄位自動生成一個物件,在物件內為每個欄位建立為一個鍵-值,鍵為欄位名、值為欄位值、不包括嵌套。
按照上文的 JSON格式進行設定,最終生成的 JSON 如下圖所示:
3.3 資料預覽
配置好後,選擇「資料預覽」,可以看到生成的 JSON 。
然後點選指定的 JSON ,可以在右側看到詳細的 JSON 內容,並且可以複製內容,如下圖所示:
後續操作可以參考:API匯出
4. 運作日誌說明
日誌分類 | 場景 | 報錯內容(不包含時間部分) |
---|---|---|
預覽&選擇節點時報錯 | 源欄位為空 | com.fr.dp.exception.FineDPException: JSON生成失敗 - JSON源欄位不能為空 (後端報錯資訊及堆疊) |
未接入前置節點 | com.fr.dp.exception.FineDPException: 未接入前置節點 - previous node of [JSON生成] is absent | |
JSON生成失敗-值格式錯誤 | com.fr.dp.exception.FineDPException: JSON生成失敗 - 值格式錯誤(後端報錯資訊及堆疊) | |
JSON生成失敗(其他場景失敗場景) | com.fr.dp.exception.FineDPException: JSON生成失敗 - 後端報錯資訊及堆疊 | |
構建時報錯 | 源欄位為空/匯出欄位為空 | 任務構建失敗 異常節點:【資料轉換】 [JSON生成]: 源欄位為空 匯出欄位為空 |
未接入前置節點 | 任務構建失敗 異常節點:【資料轉換】 [JSON生成]:未接入前置節點 | |
運作時報錯 | JSON生成失敗-值格式錯誤 | [資料轉換] - 執行失敗 [JSON生成]:JSON生成失敗 - 值格式錯誤(後端報錯資訊) |
JSON生成失敗(其他場景失敗場景) | [資料轉換] - 執行失敗 [JSON生成]:JSON生成失敗 - (後端報錯資訊) |