# JsonArray - 脚本和图表函数

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