Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products.
All content is subject to change and is provided without warranty.
跳到主要内容 跳到补充内容

使用 JSON 文件

Qlik Cloud 中的 JSON 文件加载数据。

您可以像处理 Qlik Cloud 支持的任何其他数据文件一样从 JSON 文件加载数据。有关更多信息,请参阅从文件中加载数据

也可以使用 LOAD 命令从加载脚本中的 JSON 文件加载数据。例如:

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 数据。数组的内容被散列,并用作链接表的键。

例如,下面的 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
<hash of [1,2]> <hash of [3,5]>
<hash of [2,3]> <hash of [4,5]>
表格 2
%Key_a a..@1
<hash of [1,2]> 1
<hash of [1,2]> 2
<hash of [2,3]> 2
<hash of [2,3]> 3
表格 3
%Key_b b..@1
<hash of [3,5]> 3
<hash of [3,5]> 4
<hash of [4,5]> 4
<hash of [4,5]> 5
信息注释

如果您的数据包含多个内容相同的数组,请在子表 LOAD 语句中使用关键字 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

加载所有表格

您可以通过指定所有表而不是 Table is 来加载所有表。例如:

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

限制

JSON 文件存在以下限制:

  • JSON 中的单个 LOAD 语句可以加载的上限如下:

    • 5,000 个字段

    • 1,000 个表格

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!