tiny-json-validator

    2.0.0 • Public • Published

    Tiny JSON validator

    Build Status npm

    A Node.js lib that has less lines than this readme™.

    It supports a tiny subset of the json schema specs. The main goal of this project is to provide a nice and easy to follow implementation of a json validator. You may fork it and extend it as you please.

    Release versioning follows SemVer.

    Installation

    $ npm install tiny-json-validator
    

    It is supported in all versions of Node.js +4.2 without any flags.

    Example

    "use strict";
     
    let validator = require('tiny-json-validator');
     
     
    let book_schema = {
        type: 'object',
        required: true,
        properties: {
            title: {
                type: 'string',
                required: true
            },
            author: {
                type: 'object',
                required: true,
                properties: {
                    name: {
                        type: 'string',
                        required: true
                    },
                    age: {
                        type: 'integer',
                        required: true
                    },
                    city: {
                        type: 'string'
                    }
                }
            },
            related_titles: {
                type: 'array',
                required: true,
                items: {
                    type: 'string'
                }
            }
        }
    };
     
    let data = {
        title: 'A Game of Thrones',
        author: {
            name: 'George R. R. Marti'
        },
        related_titles: [1, 2, 'A Song of Ice and Fire'],
        extra: 'this will get removed'
    };
     
    let res = validator(book_schema, data);
     
    res.isValid
    // false
     
    res.errors
    // {author.age: "is required", related_titles.0: 'type must be string', related_titles.1: 'type must be string'}
     
    res.data
    // {title: 'A Game of Thrones', author: {name: 'George R. R. Marti'}, related_titles: ['A Song of Ice and Fire']}

    Running tests

    $ npm run test
    

    Changelog

    changelog

    License

    MIT

    Install

    npm i tiny-json-validator

    DownloadsWeekly Downloads

    35

    Version

    2.0.0

    License

    MIT

    Last publish

    Collaborators

    • nitely