Skip to content

Плагин для работы с наборами данных JSON

1. Обзор

1.1 Версия

Версия FineBIновая функция
6.0-

1.2 Сценарии применения

С популярностью JavaScript данные в формате JSON также находят все более широкое применение, но из-за гибкости формата JSON при анализе этого типа структуры данных вместе с другими данными вы столкнетесь с проблемой неоднородности структуры, что приведет к невозможности анализа FineBI необходимо установить плагины, в этой статье подробно описано, как использовать набор данных JSON.

1.3 Функциональный профиль

Плагин JSON Dataset обрабатывает данные в формате JSON для удобства использования в FineBI.

2. Знакомство с плагином

2.1 Установка плагинов

Загрузить плагин можно по ссылке: Плагин для работы с наборами данных JSON

Чтобы установить плагин, см. раздел: Управление плагинами

2.2 Определение соединения с данными JSON

1) Войдите в систему Data Decision System в качестве администратора и нажмите "Management System > Data Connections > Data Connection Management > New Data Connection > All", чтобы добавить JSON-соединение данных, как показано на следующем рисунке:

2) Нажмите "JSON", чтобы настроить подключение к данным JSON. Как показано на рисунке ниже:

Примечание: После сохранения конфигурации соединения данных JSON выберите соединение данных и нажмите кнопку справа, чтобы изменить имя соединения данных.

Примечание: Если объем данных велик, необходимо изменить максимальное количество подключений пула соединений в разделе "Сетевые подключения".

Подробное описание элементов настройки приведено в таблице ниже:

элемент настройкиинструкции
адресАдреса могут поддерживать параметры, как и наборы данных; обратите внимание, что для запросов во время проектирования предусмотрен параметр по умолчанию.Примечание: Поддерживаются HTTPS с HTTP и несамостоятельные SSL-сертификаты.
Имя пользователя и парольВведите свое имя пользователя и пароль для аутентификации, не заполняйте, если аутентификация не требуется
Тип запросаРежимы GET и POST передают параметры по-разному: GET вставляется в URL, POST - в тело HTTP-запроса, а для режима POST необходимо добавить собственные параметры.
Срок действия кэшаПо умолчанию время кэширования равно 0, что означает, что оно не включено, и поддерживает кластеризацию, которая может эффективно повысить эффективность работы с наборами данных JSON.Примечание: Плагин версии V9.3.3 поддерживает
Общие параметрыОбычные параметры - это параметры, помещаемые в тело, обычно обозначаемые как GET и POST.
параметры заголовкаПараметр заголовка - это то, что находится внутри заголовка. Часто используемые постоянные величины обычно помещаются в заголовок, потому что каждый запрос приходит с заголовком.
кодировкиЕсли файл не имеет кодировки UTF-8, необходимо выбрать соответствующую кодировку в поле Original Encoding, иначе текстовая информация не сможет быть правильно разобрана.

Необходимо обратить внимание на следующие моменты:

  • В версии плагина V9.3.3 движок сценариев поддерживает самостоятельный выбор JavaScript V8 или Java (по умолчанию) и автоматически использует Java-версию движка сценариев на машинах, не поддерживающих JavaScript V8.
  • Добавление типа параметра зависит от того, какой тип параметра должен получить сервер пользователя.
  • Рекомендуется, чтобы при получении параметров пользователи использовали файлы .json, а не просто интерфейсы.

2.3 Новый набор данных в формате JSON

Нажмите "Server Dataset > JSON Dataset", имя набора данных - "JSON Dataset", выберите созданное соединение с данными JSON, введите запрос $.store.book[*] и нажмите кнопку "Сохранить". Как показано на следующем рисунке:

Элементы настройки описаны в следующей таблице:

элемент настройкиинструкцииПример этой статьи
Имя набора данныхОпределяется пользователем, не nullНабор данных в формате JSON
Имя подключения данныхВыберите созданное подключение к данным JSONСоединение с данными JSON, определенное в разделе 3.1 данного документа.
сортировка ключейсортировать полученные имена столбцов. По умолчанию используется значениепо умолчанию (настройка)
Ранг перед чтениемИтерация по всем данным сначала, получение имен столбцов, может быть использована в случае, если структура JSON не аккуратная, немного снизит эффективность. По умолчанию не включаетсяпо умолчанию (настройка)
формулировка запросаВведите оператор запроса$.store.book[*]Запросите всю информацию о книгах в книжном магазине, результат запроса показан на следующем рисунке:Примечание:$.store.book[*] - это фиксированная JSON-ссылка, из которой извлекаются все данные о книге в магазине.
$.store.book[*].category Результат запроса показан на следующем рисунке:
$.store.book[? (@.price<10)]Если убрать книги, цена которых меньше 10, результат запроса будет показан ниже:

2.4 Введение в методы переноса параметров

Различия между тремя способами передачи параметров приведены в таблице ниже:

парадигмаметод передачи
ПОЛУЧИТЬВставка в URL
POST_FORMВам нужно передать ключ-значение, и вы можете добавить динамические параметры.
POST_RAWВы можете добавлять динамические параметры, если они имеют значение.

Подробности передачи параметров см. в разделе 2.3 плагина JSON Dataset Plugin.

3. Набор данных программы в формате JSON

Используйте сценарии JavaScript для преобразования объектов JSON в двумерные таблицы. Этот подход решает все сценарии, в которых наборы данных JSON нельзя использовать напрямую, а сценарий можно настроить в соответствии с собственной структурой данных пользователя, чтобы он мог взаимодействовать с отчетами.

Примечание: Для создания новых и использования программных наборов данных JSON необходимо использовать версию JAR-пакета 2019-04-03 и более поздние, а плагин должен быть обновлен до версии 9.2.3 и более поздних.

3.1 Создание нового набора данных программы в формате JSON

Войдите в систему Data Decision System в качестве администратора, нажмите "Management System > Data Connections > Server Dataset > JSON Program Dataset", имя набора данных - "JSON Program Dataset", выберите созданное соединение с данными JSON, введите оператор сценария и нажмите кнопку "Save". Как показано на рисунке ниже:

3.2 Получение всех утверждений

Чтобы получить данные обо всех книгах, ниже приведен оператор сценария:

  
  
var books = $.store.book; var rowCount = books.length; console.log("Количество строк:" +  
  
  
  
 rowCount); var table = []; var column = []; books.forEach(function(value, index) { &nbsp  
  
; var row = []; for (var key in value) { &nbsp  
  
 nbsp; row.push(value[key]); column.push(key); &  
  
 nbsp; } console.log("Всего в строке " + row.length + "столбцов"); &  
  
nbsp; table.push(row); }); return merge(table, unique(column))

Описание встроенных функций и переменных в скрипте приведено в таблице ниже:

Встроенные функции и переменныескрытый смысл
$Объекты, представляющие содержимое JSON
уникальный(массив)Дедублирование массивов, в основном для обработки имен столбцов
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&  
  
  
 nbsp;= []; books.forEach(function(value, index) { var row = []; &  
 nbsp; 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&  
  
 nbsp;= ["автор"]; books.forEach(function(value, index) { var row =  
  
  
  
   
[]; row.push(value.author); table.push(row); }); return merge(table, column).

Запрашиваемые данные показаны ниже:

4. использование наборов данных JSON/наборов данных программ

1) Войдите в систему Data Decision System с правами администратора и добавьте таблицы базы данных

2) Нажмите "Server Dataset", чтобы добавить созданный набор данных JSON/программный набор данных, как показано ниже:

Примечание: Если данные JSON содержат более одного типа данных, возможны ошибки при использовании во внешнем интерфейсе, рекомендуется попытаться обработать данные в соответствии с типом данных.