/jackson-json-reference

JSON Reference for Java with Jackson.

Primary LanguageJavaOtherNOASSERTION

jackson-json-reference

Build Status Codecov Download

JSON Reference implementation for Java, based on Jackson. Process references in JSON documents, such as in JSON Schema. Aims for but not limited to full spec compliance.

Features

  • Supports URLs & files.
  • Relative & absolute reference URIs.
  • Recursive expansion, with options for max depth and stop on circularity.

Specs

Usage

File

File file = new File("src/test/resources/nest.json");
JsonNode node = (new JsonReferenceProcessor()).process(file);

URL

URL url = new URL("http://json-schema.org/schema");
JsonNode node = (new JsonReferenceProcessor()).process(url);

Settings

ObjectMapper mapper = new ObjectMapper();

JsonReference processor = new JsonReferenceProcessor(mapper);
processor.setStopOnCircular(false); // default true
processor.setMaxDepth(2); // default 1

JsonNode node = processor.process( /*...*/ );

Output

ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("out.json"), node);

Install

Maven

<repositories>
    <repository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>bintray-adjohnson916-maven</id>
        <name>bintray-adjohnson916-maven</name>
        <url>http://dl.bintray.com/adjohnson916/maven</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>me.andrz.jackson</groupId>
        <artifactId>jackson-json-reference</artifactId>
        <version>0.1.0</version>
    </dependency>
</dependencies>

Gradle

repositories {
    maven {
        url  "http://dl.bintray.com/adjohnson916/maven" 
    }
}

dependencies {
    compile 'me.andrz.jackson:jackson-json-reference:0.1.0'
}

Manual

Download JAR from BinTray.

License

See LICENSE.