Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

An implementation of Orderly JSON for use on the JVM

branch: master


This is an implementation of Orderly JSON for use on the JVM. The parser is written in Scala.

A JSON schema validator is also included, so you can validate JSON values against your Orderly definitions.

Prebuilt jars/POMs/etc are published at

This implementation uses the same test suite as the reference implementation to help ensure consistent behavior. If you find a case that produces different output, please let me know and I will add it to the test suite.

This project is covered by the BSD license.


You can use Orderly directly through Scala or through a set of Java interfaces.

From Java:

import com.nparry.orderly.api.*;
import com.nparry.orderly.*;
import java.util.List;

OrderlyFaactory factory = new DefaultOrderlyFactory();
Orderly orderly = factory.getOrderly("integer {0,100};");

List<Violation> noProblems = orderly.getViolations("50");
List<Violation> notAllowed = orderly.getViolations("200");

From Scala:

import com.nparry.orderly._
import net.liftweb.json.JsonAST._

val orderly = Orderly("integer {0,100};")

val noProblems = orderly.validate(JInt(50))
val notAllowed = orderly.validate(JInt(200))

An example of usage via the Scala console:

scala> val orderly = Orderly("integer {0,100};")
orderly: com.nparry.orderly.Orderly = 

scala> val noProblems = orderly.validate(JInt(50))
noProblems: List[com.nparry.orderly.Violation] = List()

scala> val notAllowed = orderly.validate(JInt(200))
notAllowed: List[com.nparry.orderly.Violation] = List(Violation(List(),200 is greater than maximum allowed value))


  • Enhance Java APIs to use an actual Java JSON library.
  • Improve error messages for the parser and the validator.
  • The JSON schema validator needs some work.
Something went wrong with that request. Please try again.