Оформление
Плагин для работы с наборами данных 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) {  
; var row = []; for (var key in value) {  
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 содержат более одного типа данных, возможны ошибки при использовании во внешнем интерфейсе, рекомендуется попытаться обработать данные в соответствии с типом данных.
Примечание:$.store.book[*] - это фиксированная JSON-ссылка, из которой извлекаются все данные о книге в магазине.
