JSON 資料集插件

1. 概述

1.1 版本

 FineBI 版本新增功能
6.0-

1.2 應用場景

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

1.3 功能簡介

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

2. 插件介紹

2.1 安裝插件

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

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

2.2 定義 JSON 資料連結

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

1json图示.jpg

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

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

2配置json.jpg

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

   設定項 說明
位址

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

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

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

需注意以下幾點:

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

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

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

2.3 建立 JSON 資料集

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

3建立json资料集路径.jpg

4新建json.jpg

設定項介紹如下表所示:

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

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

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

輸入查詢語句

$.store.book[*]

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

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

$.store.book[*].category 

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

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

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

2.4 傳參方式介紹

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

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

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

3. JSON 過程資料集

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

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

3.1 建立 JSON 過程資料集

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

4建立json程式資料集路徑.jpg

4新建json程式資料集.jpg

3.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 遍歷陣列方法

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

3.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));

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

3.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);

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

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

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

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

5伺服器資料集.jpg

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

附件列表


主题: 資料準備
已经是第一篇
已经是最后一篇
  • 有帮助
  • 没帮助
  • 只是浏览
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙