[ { "description": "not", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "not": { "type": "integer" } }, "tests": [ { "description": "allowed", "data": "foo", "valid": true }, { "description": "disallowed", "data": 1, "valid": false } ] }, { "description": "not multiple types", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "not": { "type": [ "integer", "boolean" ] } }, "tests": [ { "description": "valid", "data": "foo", "valid": true }, { "description": "mismatch", "data": 1, "valid": false }, { "description": "other mismatch", "data": true, "valid": false } ] }, { "description": "not more complex schema", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "not": { "type": "object", "properties": { "foo": { "type": "string" } } } }, "tests": [ { "description": "match", "data": 1, "valid": true }, { "description": "other match", "data": {}, "valid": true }, { "description": "mismatch", "data": {}, "valid": false } ] }, { "description": "forbidden property", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "foo": { "not": {} }, "baz": { "type": "integer" }, "bar": { "type": "integer" } } }, "tests": [ { "description": "property present", "data": { "foo": 1, "bar": 2 }, "valid": false }, { "description": "property absent", "data": { "bar": 1, "baz": 2 }, "valid": true } ] }, { "description": "forbid everything with empty schema", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "not": {} }, "tests": [ { "description": "number is invalid", "data": 1, "valid": false }, { "description": "string is invalid", "data": "foo", "valid": false }, { "description": "boolean true is invalid", "data": true, "valid": false }, { "description": "boolean false is invalid", "data": false, "valid": false }, { "description": "null is invalid", "data": null, "valid": false }, { "description": "object is invalid", "data": {}, "valid": false }, { "description": "empty object is invalid", "data": {}, "valid": false }, { "description": "array is invalid", "data": [ "foo" ], "valid": false }, { "description": "empty array is invalid", "data": [], "valid": false } ] }, { "description": "forbid everything with boolean schema true", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "not": true }, "tests": [ { "description": "number is invalid", "data": 1, "valid": false }, { "description": "string is invalid", "data": "foo", "valid": false }, { "description": "boolean true is invalid", "data": true, "valid": false }, { "description": "boolean false is invalid", "data": false, "valid": false }, { "description": "null is invalid", "data": null, "valid": false }, { "description": "object is invalid", "data": {}, "valid": false }, { "description": "empty object is invalid", "data": {}, "valid": false }, { "description": "array is invalid", "data": [ "foo" ], "valid": false }, { "description": "empty array is invalid", "data": [], "valid": false } ] }, { "description": "allow everything with boolean schema false", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "not": false }, "tests": [ { "description": "number is valid", "data": 1, "valid": true }, { "description": "string is valid", "data": "foo", "valid": true }, { "description": "boolean true is valid", "data": true, "valid": true }, { "description": "boolean false is valid", "data": false, "valid": true }, { "description": "null is valid", "data": null, "valid": true }, { "description": "object is valid", "data": {}, "valid": true }, { "description": "empty object is valid", "data": {}, "valid": true }, { "description": "array is valid", "data": [ "foo" ], "valid": true }, { "description": "empty array is valid", "data": [], "valid": true } ] }, { "description": "double negation", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "not": { "not": {} } }, "tests": [ { "description": "any value is valid", "data": "foo", "valid": true } ] } ]