反饋已提交

網絡繁忙

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

D08-01 JSON資料集

一、概述

  1. 安裝該插件後,可以將 JSON 格式的資料轉變為報表中可以使用的資料表。

  2. 插件安裝方式,可參考A11-18伺服器-插件管理

二、屬性設定

1
新增JSON資料連結。
  1. 點選【伺服器】→【定義資料連結】→【+】,選擇【JSON】。

  2. 輸入地址和各配置項內容,點選【測試連結】,連結成功後點擊確定即可。

21.gif

2
JSON資料連結配置項說明。
  1. 【地址】可以支援參數,和資料集一樣,注意提供一個預設參數供設計的時候查詢用。

  2. 【使用者名稱】和【密碼】輸入進行認證,不需要認證就不填寫。

  3. 【請求方式】有三種:GET、POST_FORM、POST_RAW,GET 是拼接到 URL 上,POST 是放到 HTTP 請求體中,並且POST 模式的參數需要自己新增。

  4. 【快取有效期】預設為 0 ,表示不啟用,且支援叢集,可以有效的提升 JSON 資料集的效率。

  5. 【普通參數】即放在 Body 中的,通常說的 GET 和 POST 即普通參數。

  6. 【請求頭參數】即放在 Head 裡面的,常用不變的量一般都是走 header, 因為每次請求都帶 header。

  7. 【編碼】可自訂設定,如果檔案是非 UTF-8 編碼的,就需要在原始編碼這一欄選擇對應的編碼,否則無法正確的解析文字資訊。

2.png

3
傳參方式說明-GET傳參。
  1. 選擇【請求方式】為【GET】。

  2. 不設定任何參數時,預覽資料集不會傳回節點值。

  3. 點選【普通參數】旁的【+】按鈕,新增一個參數num,預設值為book。

  4. 在地址後用?拼接參數val=${num}。

3.gif

4
傳參方式說明-POST_FORM傳參。
  1. 選擇【請求方式】為【POST_FORM】。

  2. 點選【普通參數】旁的【+】按鈕,新增一個參數num,預設值為book。

  3. 預覽資料集時,傳回參數 book 對應的資料。

4.gif

5
傳參方式說明-POST_RAW傳參。
  1. 選擇【請求方式】為【POST_RAW】。

  2. 點選【請求頭參數】旁的【+】按鈕,新增一個參數Content-Type,值為applicationon/json,表示客戶端告訴伺服器實際傳送的資料型別為 JSON 格式。

  3. 在普通參數上的文字框中輸入固定參數{"val"="book"}。

  4. 設定動態參數,需要在文字框中輸入{"name"="${value}"},點選【重新整理】按鈕,在下方配置參數預設值為book。

5.gif

6
新增JSON資料集。
  1. 在範本資料集設定處,點選【+】按鈕,選擇【JSON資料集】。

  2. 查詢語句欄輸入$.store.book[*],點選【預覽】按鈕,查詢出書店中所有的書資訊。

  3. 若要取出其中的某一欄,可以輸入$.store.book[*].category,取出 category 欄的資料。

  4. JSON資料集可以設定條件過濾,輸入$.store.book[?(@.price<10)]取出價格小於 10 的書籍。

  5. 【鍵排序】是指對獲取出來的欄名做排序。預設即為不開啟。

  6. 【預讀欄名】先遍歷所有的資料,把欄名獲取出來,可用於 JSON 結構不整齊的情況,會稍微的降低效率。預設即為不開啟。

6.gif

7
新增JSON程式資料集。
  1. 在範本資料集設定處,點選【+】按鈕,選擇【JSON程式資料集】。

  2. 在【指令碼語句】框中輸入指令碼程式碼,即可獲取所有書籍的資料。

  3. 指令碼中可使用如下內建函式和變數:

內建函式和變數

 含義

 $

 表示 JSON 內容的物件

 unique(array)

 將陣列進行去重,主要用於列名處理

 console.log(info)

 輸出除錯資訊,會在日誌檔案中輸出 INFO 級別的資訊

 console.error(err)

 輸出錯誤級別的資訊,會在日誌檔案中輸出 ERROR 級別的資訊

 merge(table, column)

 合併資料集的內容和欄名物件

 forEach

 JS 遍歷陣列方法

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))

7.gif


附件列表


主題: 插件應用
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤

文 檔回 饋

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

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

不再提示

10s後關閉