JSON Schema is a vocabulary that allows you to validate, annotate, and manipulate JSON documents.
A JSON Schema is itself a JSON document and requires a third party library to validate data against it.
It is currently a draft IETF standard allowing consistent expectation from implementations based on the standard specification.
A list of implementations is maintained in the GitHub repository. The list of supported languages currently lists validators for:
ActionScript 3, C, C++, Clojure, Dart, Erlang, Go, Haskell, Java, JavaScript, .NET, PHP, Perl, Python and Ruby
There are also UI generators, data parsers, schema editors, documentation generators and IDE support.
{ "title": "Person", "type": "object", "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "age": { "description": "Age in years", "type": "integer", "minimum": 0 } }, "required": ["firstName", "lastName"] }
Results
// Valid { "firstName": "Jason", "lastName": "Voorhees" } // Valid { "firstName": "Jason", "lastName": "Voorhees", "age": 47 } // Invalid - no lastName { "firstName": "Jason", "age": 47 } // Invalid - age is not integer { "firstName": "Jason", "lastName": "Voorhees", "age": "47" }