Dialect | http://json-schema.org/draft-06/schema# |
Ran |
implementation | cases (217) | tests (772) | ||||
---|---|---|---|---|---|---|
errors | failed | skipped | errors | |||
json-schema clojure | 34 | 246 | 0 | 79 | ||
JsonSchema.Net dotnet | 4.0.0 | 0 | 0 | 1 | 0 | |
jsonschema go | v5.1.1 | 0 | 0 | 0 | 0 | |
ajv javascript | 8.12.0 | 25 | 8 | 0 | 91 | |
hyperjump-jsv javascript | 1.1.2 | 0 | 0 | 13 | 0 | |
jsonschema lua | 0.9.9-0 | 32 | 19 | 0 | 98 | |
fastjsonschema python | 2.16.2 | 25 | 22 | 0 | 54 | |
jsonschema python | 4.17.3 | 1 | 0 | 0 | 2 | |
json_schemer ruby | 0.2.24 | 9 | 5 | 0 | 21 | |
jsonschema rust | 6 | 5 | 0 | 12 | ||
vscode-json-language-service typescript | 5.1.3 | 0 | 56 | 0 | 0 | |
total | 132 | 361 | 14 | 357 |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
additional items match schema | |||||||||||
additional items do not match schema |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
all items match schema |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
empty array | |||||||||||
fewer number of items present (1) | |||||||||||
fewer number of items present (2) | |||||||||||
equal number of items present | |||||||||||
additional items are not permitted |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
items defaults to empty schema so everything is valid | |||||||||||
ignores non-arrays |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
only the first item is validated |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
items defined in allOf are not examined |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
items defined in allOf are not examined |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
valid items | |||||||||||
wrong type of second item |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
allows null elements |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
no additional properties is valid | |||||||||||
an additional property is invalid | |||||||||||
ignores arrays | |||||||||||
ignores strings | |||||||||||
ignores other non-objects | |||||||||||
patternProperties are not additional properties |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
matching the pattern is valid | |||||||||||
not matching the pattern is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
no additional properties is valid | |||||||||||
an additional valid property is valid | |||||||||||
an additional invalid property is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
an additional valid property is valid | |||||||||||
an additional invalid property is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
additional properties are allowed |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
properties defined in allOf are not examined |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
allows null values |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
allOf | |||||||||||
mismatch second | |||||||||||
mismatch first | |||||||||||
wrong type |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
valid | |||||||||||
mismatch base schema | |||||||||||
mismatch first allOf | |||||||||||
mismatch second allOf | |||||||||||
mismatch both |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
valid | |||||||||||
mismatch one |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
any value is valid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
any value is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
any value is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
any data is valid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
any data is valid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
number is valid | |||||||||||
string is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
number is valid | |||||||||||
string is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
null is valid | |||||||||||
anything non-null is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
allOf: false, anyOf: false, oneOf: false | |||||||||||
allOf: false, anyOf: false, oneOf: true | |||||||||||
allOf: false, anyOf: true, oneOf: false | |||||||||||
allOf: false, anyOf: true, oneOf: true | |||||||||||
allOf: true, anyOf: false, oneOf: false | |||||||||||
allOf: true, anyOf: false, oneOf: true | |||||||||||
allOf: true, anyOf: true, oneOf: false | |||||||||||
allOf: true, anyOf: true, oneOf: true |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
first anyOf valid | |||||||||||
second anyOf valid | |||||||||||
both anyOf valid | |||||||||||
neither anyOf valid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
mismatch base schema | |||||||||||
one anyOf valid | |||||||||||
both anyOf invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
any value is valid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
any value is valid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
any value is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
first anyOf valid (complex) | |||||||||||
second anyOf valid (complex) | |||||||||||
both anyOf valid (complex) | |||||||||||
neither anyOf valid (complex) |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
string is valid | |||||||||||
number is valid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
null is valid | |||||||||||
anything non-null is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
number is valid | |||||||||||
string is valid | |||||||||||
boolean true is valid | |||||||||||
boolean false is valid | |||||||||||
null is valid | |||||||||||
object is valid | |||||||||||
empty object is valid | |||||||||||
array is valid | |||||||||||
empty array is valid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
number is invalid | |||||||||||
string is invalid | |||||||||||
boolean true is invalid | |||||||||||
boolean false is invalid | |||||||||||
null is invalid | |||||||||||
object is invalid | |||||||||||
empty object is invalid | |||||||||||
array is invalid | |||||||||||
empty array is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
same value is valid | |||||||||||
another value is invalid | |||||||||||
another type is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
same object is valid | |||||||||||
same object with different property order is valid | |||||||||||
another object is invalid | |||||||||||
another type is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
same array is valid | |||||||||||
another array item is invalid | |||||||||||
array with additional items is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
null is valid | |||||||||||
not null is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
false is valid | |||||||||||
integer zero is invalid | |||||||||||
float zero is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
true is valid | |||||||||||
integer one is invalid | |||||||||||
float one is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
[false] is valid | |||||||||||
[0] is invalid | |||||||||||
[0.0] is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
[true] is valid | |||||||||||
[1] is invalid | |||||||||||
[1.0] is invalid |
test | json-schema clojure | JsonSchema.Net dotnet | jsonschema go | ajv javascript | hyperjump-jsv javascript | jsonschema lua | fastjsonschema python | jsonschema python | json_schemer ruby | jsonschema rust | vscode-json-language-service typescript |
{"a": false} is valid | |||||||||||
{"a": 0} is invalid | |||||||||||
{"a": 0.0} is invalid |
test |