Dialect | http://json-schema.org/draft-07/schema# |
Ran |
implementation | cases (240) | tests (856) | ||||
---|---|---|---|---|---|---|
errors | failed | skipped | errors | |||
valijson c++ | 30 | 19 | 0 | 65 | ||
json-schema clojure | 38 | 255 | 0 | 87 | ||
JsonSchema.Net dotnet | 4.0.0 | 0 | 0 | 1 | 0 | |
jsonschema go | v5.1.1 | 0 | 0 | 0 | 0 | |
ajv javascript | 8.12.0 | 40 | 8 | 0 | 153 | |
hyperjump-jsv javascript | 1.1.2 | 0 | 0 | 13 | 0 | |
jsonschema lua | 0.9.9-0 | 36 | 20 | 0 | 106 | |
fastjsonschema python | 2.16.2 | 33 | 22 | 0 | 74 | |
jsonschema python | 4.17.3 | 5 | 0 | 0 | 10 | |
json_schemer ruby | 0.2.24 | 9 | 6 | 0 | 21 | |
jsonschema rust | 6 | 5 | 0 | 12 | ||
vscode-json-language-service typescript | 5.1.3 | 0 | 54 | 0 | 0 | |
total | 197 | 389 | 14 | 528 |
test | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 | valijson c++ | 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 |