Перейти к основному содержимому Перейти к дополнительному содержимому

Работа с файлами JSON

Загрузите данные из файлов JSON в Qlik Cloud.

Данные из файлов JSON можно загружать так же, как из любого другого файла данных, поддерживаемого Qlik Cloud. Для получения дополнительной информации см. раздел Загрузка данных из файлов.

Также можно загрузить данные из файла JSON в скрипт загрузки данных с помощью команды LOAD. Пример:

LOAD * from [lib://DataFiles/xyz.json] (json);

Для получения дополнительной информации см. раздел 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:

LOAD * FROM [...] (json); LOAD * FROM [...] (json, table is [/*/a]); LOAD * FROM [...] (json, table is [/*/b]);

Спецификатор table is ― это путь к итератору для подтаблицы. В результате получаются следующие таблицы данных:

Таблица 1
%Key_a %Key_b
<хеш [1,2]> <хеш [3,5]>
< хеш [2,3]> <хеш [4,5]>
Таблица 2
%Key_a a..@1
<хеш [1,2]> 1
<хеш [1,2]> 2
< хеш [2,3]> 2
< хеш [2,3]> 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:

LOAD pos.0 AS x, pos.1 AS y, pos.2 AS z FROM […] (json);.

В результате получается следующая таблица:

x y z
1 2 3
4 5 6

Загрузка всех таблиц

Можно загрузить все таблицы, используя спецификатор all tables вместо Table is. Пример:

LOAD * FROM [lib://DataFiles/Sales.json] (json, all tables);

Ограничения

В отношении файлов JSON действуют следующие ограничения:

  • Один оператор LOAD из JSON может загрузить не более:

    • 5000 полей

    • 1000 таблиц

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!