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

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

Данные из файлов JSON можно загружать так же, как из любого другого файла данных, поддерживаемого Qlik Sense. Для получения дополнительной информации см. раздел [Загрузка данных из файлов](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/DataSource/load-data-from-files.htm).

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

```
LOAD  * from xyz.json (json);
```

Для получения дополнительной информации см. раздел [Load](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm).

Операторы LOAD могут фильтровать или переупорядочивать поля, перечисляя нужные в списке полей вместо использования подстановки. Например: `LOAD a.b, b.c FROM […] (json);`. Несуществующие поля не будут вызывать ошибку.

## Загрузка вложенных объектов из JSON

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

```

[
	{"name":{"first":"Alice","last":"Stephenson"}},
	{"name":{"first":"Bob"}},
	{"name":{"last":"Roberts"}}
]
```

Когда для загрузки используется `LOAD * FROM [lib://AttachedFiles/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 |
| --- | --- |
| &lt;хеш [1,2]&gt; | &lt;хеш [3,5]&gt; |
| &lt; хеш [2,3]&gt; | &lt;хеш [4,5]&gt; |

Таблица 2

| %Key\_a | a..@1 |
| --- | --- |
| &lt;хеш [1,2]&gt; | 1 |
| &lt;хеш [1,2]&gt; | 2 |
| &lt; хеш [2,3]&gt; | 2 |
| &lt; хеш [2,3]&gt; | 3 |

Таблица 3

| %Key\_b | b..@1 |
| --- | --- |
| &lt;хеш [3,5]&gt; | 3 |
| &lt;хеш [3,5]&gt; | 4 |
| &lt;хеш [4,5]&gt; | 4 |
| &lt;хеш [4,5]&gt; | 5 |

Примечание к информацииЕсли данные содержат несколько массивов с одинаковым содержимым, используйте ключевое слово DISTINCT в операторах загрузки подтаблиц. Например: LOAD DISTINCT \* FROM [lib://AttachedFiles/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://AttachedFiles/Sales.json] (json, all tables);

#### Ограничения

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

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

  * 5000 полей

  * 1000 таблиц