# JsonArray — функция скриптa и диаграммы

JsonArray агрегирует и объединяет данные JSON.

Синтаксис:

JsonArray([DISTINCT][TOTAL] value [, sort\_weight])

Возвращаемые типы данных: двойное значение

Аргументы:

Аргументы

| Аргумент | Описание |
| --- | --- |
| DISTINCT | Если слово DISTINCT указывается до аргументов функции, все дубликаты, возникшие в результате оценки аргументов функции, будут проигнорированы. |
| TOTAL | Если слово TOTAL стоит перед аргументами функции, вычисление выполняется по всем возможным значениям, указанным в текущих выборках, а не только в тех, которые относятся к значению текущего измерения, т. е. измерения диаграммы игнорируются. |
| value | Поле ввода. Выражение, содержащее данные для сортировки. Обнаружено первое (нижнее) значение элемента sort\_weight, на основе которого определяется соответствующее значение выражения value. Если указать знак минуса перед элементом sort\_weight, функция вернет последнее (самое высокое) отсортированное значение. |
| sort\_weight | Поле ввода. Выражение, содержащее данные для сортировки. Обнаружено первое (нижнее) значение элемента sort\_weight, на основе которого определяется соответствующее значение выражения value. Если указать знак минуса перед элементом sort\_weight, функция вернет последнее (самое высокое) отсортированное значение. |

Пример:

Следующий скрипт загрузки загружает и агрегирует данные с помощью JsonArray.

```
Data:
LOAD Id,
	JsonArray(ValueOrNull) AS Json,
	JsonArray(DISTINCT ValueOrNull) AS JsonDistinct,
	JsonArray(ValueOrNull, Order) AS JsonSorted
GROUP BY Id;

LOAD *, If(Value='-',Null(),Value) AS ValueOrNull;

LOAD * INLINE '
	Id | Value          | Order
	1  | 123            | 1
	2  | "json text"    | 2
	2  | normal text    | 1
	3  | [1,2,3]        | 3
	3  | {"name":"abc"} | 2
	3  | [1,2,3]        | 1
	4  | 1              | 1
	4  | 2 and text     | 2
	4  |                | 3
	4  | -              | 4
	' (delimiter is '|');
```

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

Результаты

| Id | Json | JsonDistinct | JsonSorted |
| --- | --- | --- | --- |
| 1 | [123] | [123] | [123] |
| 2 | ["json text","normal text"] | ["json text","normal text"] | ["normal text","json text"] |
| 3 | [[1,2,3],[1,2,3],{"name":"abc"}] | [[1,2,3],{"name":"abc"}] | [[1,2,3],{"name":"abc"},[1,2,3]] |
| 4 | [1,"2 and text",""] | [1,"2 and text",""] | [1,"2 and text",""] |