JSON生成

  • 文档创建者:Roxy
  • 历史版本:10
  • 最近更新:Nikozhan 于 2025-04-15
  • 1. 概述

    1.1 版本

    FineDataLink 版本
    功能變動
    4.0.19-
    4.1.7.2介面優化
    4.1.14.1

    支援設定分組欄位,可按照分組欄位合併JSON欄位

    4.2.5.2
    • 支援 JSON 配置表內嵌套超過三層

    • 單個欄位支援在JSON生成算子內被選擇多次

    • 選欄位可以自訂設定固定值

    • 支援按照 JSON 範本生成

    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生成失敗 - (後端報錯資訊)



    附件列表


    主题: 資料開發-定時任務
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!