JSON_PARSE_AS()

All functions > JSON > JSON_PARSE_AS()

Returns the value of a JSON expression represented as a string in the given type.

Signatures

Returns: The parsed JSON value cast to the specified type

JSON_PARSE_AS(expr: VARCHAR, as_type: TYPE) → T
sql
ParameterTypeRequiredDescription
exprVARCHARYesThe JSON string to parse
as_typeTYPEYesThe target data type to cast the parsed value to

Notes

  • Parses JSON string and casts to a specific type in one operation
  • Combines JSON_PARSE and CAST functionality
  • Useful for extracting typed values from JSON strings
  • Supports casting to numeric types (BIGINT, DOUBLE, DECIMAL)
  • Supports casting to VARCHAR and other SQL types
  • Returns NULL if parsing fails or cast is not possible
  • More efficient than separate parse and cast operations
  • as_type must be a FeatureQL type the cast layer accepts

See also

Examples

FeatureQL
SELECT
    -- Parse and cast to BIGINT
    f1 := JSON_PARSE_AS('42', TYPE 'BIGINT'),
    -- Parse and cast to DOUBLE
    f2 := JSON_PARSE_AS('3.14', TYPE 'DOUBLE'),
    -- Parse and cast to VARCHAR
    f3 := JSON_PARSE_AS('"hello"', TYPE 'VARCHAR'),
    -- Parse and cast to ARRAY of BIGINT
    f4 := JSON_PARSE_AS('[1, 2, 3]', TYPE 'ARRAY<BIGINT>'),
    -- Parse and cast to ROW
    f5 := JSON_PARSE_AS(
        '{"name": "Alice", "age": 30}',
        TYPE 'ROW<name VARCHAR, age BIGINT>'
    ),
    -- Parse and cast to ARRAY of ROWS
    f6 := JSON_PARSE_AS(
        '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 20}]',
        TYPE 'ARRAY<ROW<name VARCHAR, age BIGINT>>'
    )
;
Result
f1 BIGINTf2 VARCHARf3 VARCHARf4 ARRAYf5 ROWf6 VARCHAR
423.14hello[1, 2, 3]{name: Alice, age: 30}[{name: Alice, age: 30}, {name: Bob, age: 20}]

Last update at: 2026/06/20 10:08:10