當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

JSON 数据集插件

1. 概述

1.1 版本

 FineBI 版本JAR 包版本 插件版本 新增功能
5.02018-10-24V9.3.1-
5.12020-01-15V9.3.1-
5.12020-04-03V9.3.7提供在平台的使用入口,無需藉助FineReport設計器使用

1.2 應用場景

隨着 JavaScript 的流行,JSON 格式的資料也被越來越廣泛的使用,但是由於 JSON 格式的靈活性,把這類資料結構和其他資料一起分析的時候,就會面臨結構不統一導致無法分析的問題,在 FineBI 需要安裝插件,本文詳細介紹如何使用 JSON 資料集。 

1.3 功能簡介

JSON 資料集插件可對 JSON 格式的資料進行處理,方便在 FineBI 中使用。

2. 插件介紹

2.1 安裝插件

插件下載請點選:JSON 資料集插件

安裝插件方法請參見:插件管理

2.2  使用入口

2.2.1 插件版本為 V9.3.7 及之後

以管理者身分進入數據決策系統,點選「管理系統>資料連結>資料連結管理>建立資料連結>所有」,可新增 JSON 資料連結,如下圖所示:

2.2.2 插件版本為 V9.3.7 之前

1)FineBI 遠端連結 FineReport 設計器

FineBI 安裝插件後,參考 遠端連結 FineReport 設計器 在設計器中遠端連結 FineBI 。

2)設計器新增 JSON 資料集

連結成功後,進入設計器的伺服器>定義資料連結,新增 JSON 資料連結,如下圖所示:

詳情參見:建立JSON資料連結 

3. JSON 資料集

3.1 定義 JSON 資料連結

1)以管理者身分進入數據決策系統,點選「管理系統>資料連結>資料連結管理>建立資料連結>所有」,可新增 JSON 資料連結,如下圖所示:

3.png

2)點選「JSON」,配置JSON資料連結。如下圖所示:

注:JSON 資料連結配置儲存後,選中資料連結,點選右側1602742773127145.png按鈕,可修改資料連結名稱。

設定項的詳細說明如下表所示:

   設定項 說明本文範例
位址

位址可以支援參數,和資料集一樣,注意提供一個預設參數供設計的時候查詢用

注:支援 HTTP 和非自簽章 SSL 憑證的 HTTPS

http://fine-doc.oss-cn-shanghai.aliyuncs.com/book.json

帳號密碼輸入帳號和密碼進行認證,不需要認證就不填寫-
請求型別  GET 模式和 POST 模式的參數傳遞方式不一樣,GET 是連接到 URL 上,POST 是放到 HTTP 請求體中,並且 POST 模式的參數需要自己新增GET
快取有效期預設快取時間為 0 ,表示不啟用,且支援叢集,可以有效的提升 JSON 資料集的效率
注:V9.3.3 版本插件支援
-
普通參數普通參數即放在 Body 中的,通常說的 GET 和 POST 即普通參數-
頭參數頭參數即放在 Head 裏面的。常用不變的量一般都是走 header, 因為每次請求都帶 header-
編碼  如果檔案是非 UTF-8 編碼的,就需要在原始編碼這一欄選擇對應的編碼,否則無法正確的決議正文資訊
UTF-8

需注意以下幾點:

  • V9.3.3 版本的插件,腳本引擎支援自主選擇 JavaScript V8 或者 Java(預設),在無法支援 JavaScript V8 的機器上自動使用 Java 版本的腳本引擎。

  • 新增參數型別取決於使用者伺服器需要接收什麼型別的參數。

  • 建議使用者獲取參數時使用 .json 檔案而不是單純的API。

3.2 建立 JSON 資料集

點選「伺服器資料集>JSON資料集」,資料集名稱為「JSON資料集」,選擇建立的 JSON 資料連結,輸入查詢語句$.store.book[*],點選「儲存」按鈕即可。如下圖所示:

設定項介紹如下表所示:

設定項說明本文範例
資料集名稱使用者可自訂,不可為空JSON資料集
資料連結名稱選擇已建立的 JSON 資料連結本文 3.1 節定義的JSON資料連結
鍵排序

是指對獲取出來的列名做排序。預設即為不開啓

預設
預讀排名先遍歷所有的資料,把列名獲取出來,可用於 JSON 結構不整齊的情況,會稍微的降低效率。預設即為不開啓預設
查詢語句

輸入查詢語句

$.store.book[*]

查詢出書店中所有的書資訊,查詢結果如下圖所示:

10.png

注:$.store.book[*] 是 JSON 的固定引用方式,代表取出 store 下 book 的全部資料

$.store.book[*].category 

取出 category 列的資料,查詢結果如下圖所示:

11.png

$.store.book[?(@.price<10)]

取出價格小於 10 的書籍,查詢結果如下圖所示:

12.png

3.3 傳參方式介紹

三種傳參方式差別如下表所示:

模式傳遞方式
GET連接到 URL 上
POST_FORM需要傳的是 key-value,可以新增動態參數
POST_RAW只要 value 就可以了,可以新增動態參數

傳參方式具體介紹請參見:JSON 資料集插件 的 2.3 節內容。

4. JSON 過程資料集

使用 JavaScript 腳本,將 JSON 物件轉換為二維表。這種方式可以解決所有不能直接用 JSON 資料集的場景,可以根據使用者自己的資料結構客製腳本,進而實現和報表的對接。

注: 建立和使用 JSON 過程資料集,需要使用 2019-04-03 及以後版本的 JAR 包,插件需要更新到 9.2.3 及以後版本。

4.1 建立 JSON 過程資料集

以管理者身分進入數據決策系統,點選「管理系統>資料連結>伺服器資料集>JSON過程資料集」,資料集名稱為「JSON過程資料集」,選擇建立的 JSON 資料連結,輸入腳本語句,點選「儲存」按鈕即可。如下圖所示:

4.2 取出所有語句

獲取所有書籍的資料,腳本語句如下所示:

var books = $.store.book;
var rowCount = books.length;
console.log("行數為:" + rowCount);
var table = [];
var column = [];
books.forEach(function(value, index) {
   var row = [];
   for (var key in value) {
       row.push(value[key]);
       column.push(key);
   }
   console.log("該行共有" + row.length + "列");
   table.push(row);
});
return merge(table, unique(column))

腳本中內建函式和變數的說明如下表所示:

 內建函式和變數  含義
  $  表示 JSON 內容的物件
  unique(array)  將陣列進行去重,主要用於列名處理
  console.log(info)  匯出除錯資訊,會在日誌檔案中匯出 INFO 級別的資訊
  console.error(err)  匯出錯誤級別的資訊,會在日誌檔案中匯出 ERROR 級別的資訊
  merge(table, column)  合併資料集的內容和列名物件
  books.forEach
  JS 遍歷陣列方法

查詢出的資料如下圖所示:

1602747348420207.png

4.3 條件取數

取出價格小於 10 的書籍資料,腳本語句如下所示:

var books = $.store.book;
var rowCount = books.length;
var table = [];
var column = [];
books.forEach(function(value, index) {
   var row = [];
   if (value.price < 10) {
     for (var key in value) {
       row.push(value[key]);
       column.push(key);    
       }
       table.push(row;
    }
});

return merge(table, unique(column));

查詢出的資料如下圖所示:

1602747513777013.png

4.4 取出其中某一欄

取出所有書籍的作者集合,腳本語句如下所示:

var books = $.store.book;
var rowCount = books.length;
var table = [];
var column = ["author"];
books.forEach(function(value, index) {
   var row = [];
   row.push(value.author);
   table.push(row);
});

return merge(table, column);

查詢出的資料如下圖所示:

1602747629857846.png

5. 使用JSON資料集/過程資料集

1)以管理者身分進入數據決策系統,新增資料庫表

2)點選「伺服器資料集」,可新增已建立的JSON資料集/過程資料集,如下圖所示:

注:此處 JSON 資料若包含多種資料型別,則在前端使用中可能會有報錯,建議儘量將資料處理成資料型別一致使用。  

附件列表


主題: 连接到数据
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!