# JsonArray - Skript- und Diagrammfunktion

JsonArray aggregiert JSON-Daten und fasst sie zusammen.

Syntax:

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

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| DISTINCT | Der Zusatz DISTINCT vor den Funktionsargumenten bewirkt, dass bei der Auswertung der Funktionsargumente entstehende Duplikate nicht berücksichtigt werden. |
| TOTAL | Der Zusatz TOTAL vor der Funktion bewirkt, dass die Berechnung über alle ausgewählten bzw. wählbaren Werte erfolgt, und nicht nur über diejenigen, die zu dem Wert der aktuellen Dimension zählen. Die Dimensionen des Diagramms werden also nicht berücksichtigt. |
| value | Input-Feld. Die Formel mit den Daten, die sortiert werden sollen. Der erste (niedrigste) Wert von sort\_weight wird gefunden, aus dem der entsprechende Wert der Formel value bestimmt wird. Wenn Sie ein Minuszeichen vor sort\_weight voranstellen, liefert die Funktion stattdessen den letzten (höchsten) sortierten Wert. |
| sort\_weight | Input-Feld. Die Formel mit den Daten, die sortiert werden sollen. Der erste (niedrigste) Wert von sort\_weight wird gefunden, aus dem der entsprechende Wert der Formel value bestimmt wird. Wenn Sie ein Minuszeichen vor sort\_weight voranstellen, liefert die Funktion stattdessen den letzten (höchsten) sortierten Wert. |

Beispiel:

Das folgende Ladeskript lädt und aggregiert Daten mit 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 '|');
```

Daraus ergibt sich die folgende Datentabelle:

Ergebnisse

| 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",""] |