JSON
e6 Ingestion Engine provides two set of JSON functions, the first based on PostgreSQL's SQL functions and syntax, and the second based on the JSONPath standard.
SQL Functions:
json_contains(json, key)
Check if key exists
json_contains('{"a":1,"b":2}', 'a')
true
json_get(json, path...)
Get value by path
json_get('{"a":{"b":2}}', 'a', 'b')
2
json_get_str(json, path...)
Get string value
json_get_str('{"a":"hello"}', 'a')
'hello'
json_get_int(json, path...)
Get integer value
json_get_int('{"a":42}', 'a')
42
json_get_float(json, path...)
Get float value
json_get_float('{"a":3.14}', 'a')
3.14
json_get_bool(json, path...)
Get boolean value
json_get_bool('{"a":true}', 'a')
true
json_get_json(json, path...)
Get nested JSON
json_get_json('{"a":{"b":1}}', 'a')
'{"b":1}'
json_as_text(json, path...)
Get any value as text
json_as_text('{"a":42}', 'a')
'42'
json_length(json, path...)
Length of array/object
json_length('{"a":[1,2,3]}', 'a')
3
Operator shortcuts:
?
json_contains
'{"a":1}' ? 'a'
true
->
json_get
'{"a":1}'->'a'
1
->>
json_as_text
'{"a":1}'->>'a'
'1'
JSONPath Functions:
extract_json(json, path)
Extract matching elements
extract_json('{"a":1,"b":2}', '$.a')
['1']
extract_json_string(json, path)
Extract string value
extract_json_string('{"a":"hello"}', '$.a')
'hello'
SQL functions
The SQL functions provide basic JSON parsing functions similar to those found in PostgreSQL.
json_contains
Returns true if the JSON string contains the specified key(s).
Also available via the ? operator:
json_get
Retrieves the value from a JSON string by the specified path (keys). Returns the value as its native type (string, int, etc.).
Also available via the -> operator:
Various permutations of json_get functions are available for retrieving values as a specific type, or you can use SQL type annotations:
json_get_str
Retrieves a string value from a JSON string by the specified path. Returns an empty string if the value does not exist or is not a string.
json_get_int
Retrieves an integer value from a JSON string by the specified path. Returns 0 if the value does not exist or is not an integer.
json_get_float
Retrieves a float value from a JSON string by the specified path. Returns 0.0 if the value does not exist or is not a float.
json_get_bool
Retrieves a boolean value from a JSON string by the specified path. Returns false if the value does not exist or is not a boolean.
json_get_json
Retrieves a nested JSON string from a JSON string by the specified path. The value is returned as raw JSON.
json_as_text
Retrieves any value from a JSON string by the specified path and returns it as a string, regardless of the original type.
Also available via the ->> operator:
json_length
Returns the length of a JSON object or array at the specified path. Returns 0 if the path does not exist or is not an object/array.
Json path functions
JSON functions provide basic json parsing functions using JsonPath, an evolving standard for querying JSON objects.
extract_json
Returns the JSON elements in the first argument that match the JsonPath in the second argument. The returned value is an array of json strings.
extract_json_string
Returns an unescaped String for the first item matching the JsonPath, if it is a string.
Last updated
Was this helpful?

