a JSON-schema validation library for node.js
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
test
.gitignore
.jshintignore
.jshintrc
README.md
index.js
package.json
test.js

README.md

jschema


jschema is a JSON schema validation library, written to follow the JSON-schema draft 03 spec as found at http://tools.ietf.org/html/draft-zyp-json-schema-03

It is not yet a complete implementation, missing things from the draft are:

  • item tuple schemas: the ability to define an array of schemas to match against an array
  • additionalItems: since item tuples aren't supported, this isn't really possible yet
  • default/title/description: while you can put these in your schema, they only serve as comments since the values are not used anywhere
  • format: see section 5.23 of the draft, none of this is implemented
  • extends: to maintain simplicity, extends is not implemented. it's easy enough to define your schema as smaller bits of json and reuse what you need to
  • id
  • $ref
  • $schema
  • Hyper Schema

Everything else stated in the spec is at least mostly functional. Note that, currently, there is no test suite. That's something I intend to fix ASAP.

Example usage:

var jschema = require('jschema');
var schema = {
    type: 'object',
    title: 'main',
    additionalProperties: {
        type: 'string'
    },
    patternProperties: {
        'h$': {
            type: 'number'
        }
    },
};

var test = jschema(schema);
test.validate({ one: 'test', bath: 'cold', hearth: 'test', bacon: 'test' }, function (err) {
    if (err) {
        console.log(err); // properties 'bath' and 'hearth' will fail, as they match patternProperties and are not numbers
    } else {
        console.log('looks valid!');
    }
});