parseJsonTable

Syntax

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

Arguments

json is a STRING scalar or vector containing JSON objects. If it is a STRING scalar, it can contain one or more JSON objects. JSON arrays and recursive JSON objects are not supported yet.

schema (optional) is a table that specifies the column names and types. It can contain the following columns:

Column

Description

name a string representing the column name
type a string representing the column type.
format a string specifying the format of date or time columns.
If schema is not specified, the function will automatically parse the schema based on the first 10 JSON objects.

keyCaseSensitive (optional) indicates whether keys are case-sensitive. true (default) means case sensitive, false means case insensitive.

Details

Parses JSON objects into an in-memory table. An empty JSON object will parsed as an empty row of the table.

  • When json is a string containing multiple JSON objects, each object will be converted to a row in the table.
  • When json is a vector of strings, each element will be converted to a row in the table.

Examples

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)
col_test
2019.05.22T15:04:07
json is a string containing two JSON objects:
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 is a STRING vector:
parseJsonTable([json2,json3],schemaTB1)
ID NAME col_test
2019.05.22T15:04:07
11 dd