Note
CAN_JSON_PARSE and its associated functions parse JSON values as SUPER, which Amazon Redshift parses more efficiently than VARCHAR.
Instead of using IS_VALID_JSON, we recommend that you validate your JSON strings using the CAN_JSON_PARSE function.
The IS_VALID_JSON function validates a JSON string. The function returns Boolean
true
if the string is properly formed JSON or
false
if the string is malformed. To validate a JSON
array, use IS_VALID_JSON_ARRAY function
For more information, see JSON functions.
Syntax
IS_VALID_JSON('json_string')
Arguments
- json_string
-
A string or expression that evaluates to a JSON string.
Return type
BOOLEAN
Examples
To create a table and insert JSON strings for testing, use the following example.
CREATE TABLE test_json(id int IDENTITY(0,1), json_strings VARCHAR);
-- Insert valid JSON strings --
INSERT INTO test_json(json_strings) VALUES
('{"a":2}'),
('{"a":{"b":{"c":1}}}'),
('{"a": [1,2,"b"]}');
-- Insert invalid JSON strings --
INSERT INTO test_json(json_strings) VALUES
('{{}}'),
('{1:"a"}'),
('[1,2,3]');
To validate the strings in the preceding example, use the following example.
SELECT id, json_strings, IS_VALID_JSON(json_strings)
FROM test_json
ORDER BY id;
+----+---------------------+---------------+
| id | json_strings | is_valid_json |
+----+---------------------+---------------+
| 0 | {"a":2} | true |
| 4 | {"a":{"b":{"c":1}}} | true |
| 8 | {"a": [1,2,"b"]} | true |
| 12 | {{}} | false |
| 16 | {1:"a"} | false |
| 20 | [1,2,3] | false |
+----+---------------------+---------------+