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 documenterror. - The cast forms
<string>::jsonandCAST(<string> AS json)perform the same validation as thejsonconstructor. - Use
TRY_CAST(<string> AS json)if you want to suppress validation errors. - The
WITH UNIQUE KEYSoption 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.