Description\n-----------\n\nThe IS JSON predicate checks whether a given string expression evaluates to valid JSON data in accordance with the SQL:2016 standard (based on RFC 8259).&#x20;\n\nThe predicate returns:\n\n 1  (TRUE) if the JSON expression is valid and satisfies any type constraint that is specified (e.g., OBJECT, ARRAY)\n 0 (FALSE) if the expression is not valid JSON or does not match the  specified type constraints\n &#x20;NULL (UNKNOWN) if the JSON expression itself evaluates to NULL\n\nWhen the value is invalid JSON, the predicate does not show errors. Any valid JSON value is accepted since VALUE is considered when no type constraint is mentioned.\n\nType Constraints\n\nTo limit the permitted top-level JSON value, use the optional type constraints listed below:\n\n| Type     | Description                                                                   |\n| -------- | ----------------------------------------------------------------------------- |\n| VALUE  | Any valid JSON value (object, array, number, string, true, false, null) |\n| ARRAY  | Only JSON arrays (e.g., [1,2,3]                                             |\n| OBJECT | Only JSON objects (e.g., {"key": "value"} = {"a": "42"})                      |\n| SCALAR | A JSON scalar value (strings, numbers, Boolean, or null)                    |\n\nUnique Keys\n\nThe object keys must be unique in order to use WITH UNIQUE KEYS option. WITHOUT UNIQUE KEYS, duplicate keys are accepted.&#x20;\n\nNotes\n\n JSON Validation is based on RFC 8259.\n JSON literal names must be all lowercase: true, false, null.\n Other literal names are not permitted.\n* IS JSON works in in generated columns, CHECK constraints, and DEFAULT expressions.\n\nURL: https://mariadb.com/docs/server/reference/sql-structure/operators/comparison-operators/is-json