Работа с файлами JSON
Загрузите данные из файлов JSON в Qlik Cloud.
Данные из файлов JSON можно загружать так же, как из любого другого файла данных, поддерживаемого Qlik Cloud. Для получения дополнительной информации см. раздел Загрузка данных из файлов.
Также можно загрузить данные из файла JSON в скрипт загрузки данных с помощью команды LOAD. Пример:
Для получения дополнительной информации см. раздел Load.
Операторы LOAD могут фильтровать или переупорядочивать поля, перечисляя нужные в списке полей вместо использования подстановки. Например, элемент LOAD a.b, b.c FROM […] (json);. Несуществующие поля не будут вызывать ошибку.
Загрузка вложенных объектов из JSON
Если значение является объектом, то члены этого объекта используются для расширения таблицы за счет дополнительных полей. Имя каждого поля представляет собой комбинацию родительского и дочернего объектов. Например, нижеприведенный JSON содержит вложенные объекты:
[
{"name":{"first":"Alice","last":"Stephenson"}},
{"name":{"first":"Bob"}},
{"name":{"last":"Roberts"}}
]
Когда для загрузки используется LOAD * FROM [lib://DataFiles/example.json] (json);, в результате получается следующая таблица данных:
name.first | name.last |
---|---|
Alice | Stephenson |
Bob | null |
null | Roberts |
Загрузка нескольких таблиц
Данные JSON с массивами необходимо загружать с помощью нескольких операторов LOAD. Содержимое массива хешируется и используется в качестве ключа для связи таблиц.
Например, приведенный ниже JSON содержит несколько таблиц.
[
{"a":[1,2],"b":[3,4]},
{"a":[2,3],"b":[4,5]}
]
Для их загрузки необходимо использовать следующий оператор LOAD:
Спецификатор table is ― это путь к итератору для подтаблицы. В результате получаются следующие таблицы данных:
%Key_a | %Key_b |
---|---|
<хеш [1,2]> | <хеш [3,5]> |
< хеш [2,3]> | <хеш [4,5]> |
%Key_a | a..@1 |
---|---|
<хеш [1,2]> | 1 |
<хеш [1,2]> | 2 |
< хеш [2,3]> | 2 |
< хеш [2,3]> | 3 |
%Key_b | b..@1 |
---|---|
<хеш [3,5]> | 3 |
<хеш [3,5]> | 4 |
<хеш [4,5]> | 4 |
<хеш [4,5]> | 5 |
Если данные содержат несколько массивов с одинаковым содержимым, используйте ключевое слово DISTINCT в операторах загрузки подтаблиц. Например: LOAD DISTINCT * FROM [lib://DataFiles/Sales.json] (json, all tables);
Быстрый просмотр массивов
Список полей можно использовать при загрузке данных, чтобы быстро просмотреть массивы, которые в противном случае загружались бы как подтаблицы. Пример
[
{"pos":[1,2,3]},
{"pos":[4,5,6]}
]
Для их загрузки можно использовать следующий оператор LOAD:
В результате получается следующая таблица:
x | y | z |
---|---|---|
1 | 2 | 3 |
4 | 5 | 6 |
Загрузка всех таблиц
Можно загрузить все таблицы, используя спецификатор all tables вместо Table is. Пример:
Ограничения
В отношении файлов JSON действуют следующие ограничения:
-
Один оператор LOAD из JSON может загрузить не более:
-
5000 полей
-
1000 таблиц
-