parseJsonTable

语法

parseJsonTable(json, [schema], [keyCaseSensitive=true])

参数

json 包含 JSON 对象的字符串标量或向量。当 json 是字符串标量时,可以包含1个或多个 JSON 对象。暂不支持 JSON 数组和递归 JSON 对象。

schema 可选参数,表对象,用于指定各字段的数据类型。它可以包含以下列(必须包含 name 和 type 列):

列名

含义

name 字符串,表示列名
type 字符串,表示各列的数据类型。暂不支持 BLOB 类型。
format 字符串,表示数据文件中日期或时间列的格式
如果不指定 schema,则函数将前10个 JSON 对象,自动解析表结构。

keyCaseSensitive 可选参数,表示 key 的名称是否大小写敏感。true(默认值)表示大小写敏感,false 表示大小写不敏感。

详情

将 JSON 对象解析为内存表。
  • json 是包含多个 JSON 对象的字符串时,每个对象都将转换为表的一行数据;
  • json 是字符串向量时,每个元素转换为表的一行数据。

例子

json1='{"ID":1, "NAME":"cc"}{"NAME":"dd"}'
parseJsonTable(json1)

输出返回:

ID NAME
1 cc
dd
json2 = '{"col_test":"20190522150407"}'
schemaTB = table(["col_test"] as name, ["DATETIME"] as type, ["yyyyMMddHHmmss"] as format)
parseJsonTable(json2, schemaTB)
输出返回:
1.
col_test
2019.05.22T15:04:07

json 是包含两个 JSON 对象的字符串时:

json3='{"ID":11, "NAME":"dd"}'
schemaTB1 = table(["ID", "NAME", "col_test"] as name, ["INT", "STRING", "DATETIME"] as type, [,,"yyyyMMddHHmmss"] as format)
parseJsonTable(concat([json2,json3]),schemaTB1)

输出返回:

ID NAME col_test
2019.05.22T15:04:07
11 dd

json 是字符串向量时:

parseJsonTable([json2,json3],schemaTB1)

输出返回:

ID NAME col_test
2019.05.22T15:04:07
11 dd