aeson-schema is an implementation of the JSON Schema specification. It can be used in two ways:
- To validate JSON value against a schema.
- To generate a parser for a schema. The generated code includes Haskell data structure definitions and FromJSON instances. This allows you to use the validated data in a type-safe and convenient way.
You can install this library using cabal:
cabal update && cabal install aeson-schema
aeson-schema utilizes the cabal sandbox. To get up and running with the tests you'll need to use these commands:
cd aeson-schema
git submodule init
git submodule update
cabal sandbox init
cabal install
cabal install --enable-tests
cabal test
aeson-schema implements Draft 3 of the spec. It supports all core schema definitions except the following 'format' values:
- data-time
- date
- time
- utc-millisec
- color
- style
- phone
- uri
- ip-address
- ipv6
- host-name
I would be happy to accept pull requests that implement validation of one of these formats, fix bugs or add other features.
The hjsonschema library is more actively maintained and implements the newer JSON Schema v4. It doesn't do code generation, however.