JSON

Applies to: ✅ Data 360 SQL ✅ Tableau Hyper API

Parses a string and interprets it as a JSON value, validating that the string is well-formed JSON.

Syntax

json(<string> [FORMAT JSON])

You can also parse a string into JSON with a cast.

<string>::json
CAST(<string> AS json)
TRY_CAST(<string> AS json)

Arguments

Required

  • <string>: The string to parse as JSON. The string must be a valid JSON document.

Optional

  • FORMAT JSON: Accepted for SQL-standard compatibility. It has no effect on the result.

Returns

Returns a json value. Use the result to embed pre-formatted JSON into json_array or json_object, or wherever a json value is expected.

Considerations

  • The input string is validated as JSON. Invalid input is rejected with an invalid JSON document error.
  • The cast forms <string>::json and CAST(<string> AS json) perform the same validation as the json constructor.
  • Use TRY_CAST(<string> AS json) if you want to suppress validation errors.
  • The WITH UNIQUE KEYS option from the SQL-standard, which would reject objects with duplicate keys, isn't supported.
  • Parsing preserves the document's textual content, including insignificant whitespace.

Examples

Parse a JSON String

Interpret a string as a JSON value.

SELECT json('{"a":1}') AS result;

Returns {"a":1}.

Parse with a Cast

A cast from a string performs the same validation.

SELECT '[]'::json AS result;

Returns [].

Embed Pre-Formatted JSON

Use the constructor to embed an existing document without escaping it.

SELECT json_object('a': 1, 'b': json('{"nested":true}')) AS result;

Returns {"a":1,"b":{"nested":true}}.

Invalid JSON Is Rejected

Malformed input raises an error.

SELECT json('{"a": invalid}');

Raises an invalid JSON document error.

Related Documentation

  • JSON Type
  • [JSON_ARRAY](./json-array.md) - Build a JSON array from a list of values.
  • [JSON_OBJECT](./json-object.md) - Build a JSON object from key-value pairs.
  • [JSON_SCALAR](./json-scalar.md) - Convert a scalar value to JSON.
  • Type Conversions - Type casting and coercion.