A JSON Schema validation implementation in pure Java, which aims for correctness and performance, in that order
Java Groovy Shell
Pull request Compare This branch is 1 commit ahead, 118 commits behind daveclayton:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
gradle/wrapper
misc/specs
src
.gitignore
BUILD.md
CONTRIBUTORS.md
README.md
RELEASE-NOTES.md
build.gradle
dorelease.sh
gradlew
gradlew.bat
project.gradle
settings.gradle

README.md

Read me first

The license of this project is LGPLv3 or later. See file src/main/resources/LICENSE for the full text.

This implementation has complete validation support for the latest draft (v4) and the previous draft (v3). More generally, it has quite an extensive list of features.

Should you wonder about it, this library is reported to work on Android :)

You can test this library online; you can even fork this web site and run it yourself.

This project also has a dedicated Google group.

Note: this project uses Gradle as the build system. See file BUILD.md for details.

Versions

Since version 2.1.5, this package is available on Bintray.

Gradle/Maven artifact

Gradle:

dependencies {
    compile(group: "com.github.fge", name: "json-schema-validator", version: "yourVersionHere");
}

Maven:

<dependency>
    <groupId>com.github.fge</groupId>
    <artifactId>json-schema-validator</artifactId>
    <version>your-version-here</version>
</dependency>

Extending usage beyond validation

This library's dependency on json-schema-core opens up many possibilities for extensions. A decicated project already has a few examples.

The site mentioned above already has a few examples of what is possible. Much more is doable. In fact, the only limiting factor is your own imagination!

Versioning scheme policy

The versioning scheme is defined by the middle digit of the version number:

  • if this number is even, then this is the stable version; no new features will be added to such versions, and the user API will not change (save for some additions if requested).
  • if this number is odd, then this is the development version; new features will be added to those versions only, and the user API may change.

Relevant documents

This implementation is based on the following drafts:

More...

For a detailed discussion of the implementation, see here.

Please see the wiki for more details.