WARNING! Not being actively maintained.
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.
- Supports URLs & files.
- Relative & absolute reference URIs.
- Recursive expansion, with options for max depth and stop on circularity.
- Custom object mappers, allowing Jackson features like JSON comments, YAML, etc.
- Built-in support for YAML based on file extension detection.
File file = new File("src/test/resources/nest.json");
JsonNode node = (new JsonReferenceProcessor()).process(file);
URL url = new URL("http://json-schema.org/schema");
JsonNode node = (new JsonReferenceProcessor()).process(url);
JsonReferenceProcessor processor = new JsonReferenceProcessor();
processor.setStopOnCircular(false); // default true
processor.setMaxDepth(2); // default 1, or set to -1 for no max depth
// Custom object mapper allowing comments.
processor.setMapperFactory(new ObjectMapperFactory() {
@Override
public ObjectMapper create(URL url) {
//ObjectMapper objectMapper = DefaultObjectMapperFactory.instance.create(url);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true);
return objectMapper;
}
});
JsonNode node = processor.process( /*...*/ );
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("out.json"), node);
<dependencies>
<dependency>
<groupId>me.andrz.jackson</groupId>
<artifactId>jackson-json-reference-core</artifactId>
<version>0.3.2</version>
</dependency>
</dependencies>
repositories {
mavenCentral()
}
dependencies {
compile 'me.andrz.jackson:jackson-json-reference-core:0.3.2'
}
Download JAR(s) from Maven Central:
See LICENSE.
- http://central.sonatype.org/pages/ossrh-guide.html
- http://central.sonatype.org/pages/apache-maven.html#performing-a-release-deployment-with-the-maven-release-plugin
- https://oss.sonatype.org/#nexus-search;quick~jackson-json-reference
- https://search.maven.org/#search%7Cga%7C1%7Cjackson-json-reference
If you need to bump the version of all projects in the multi-project:
mvn versions:set -DnewVersion=2.50.1-SNAPSHOT
Then be sure your build is up to date:
mvn compile
Now, use the Release Plugin (http://maven.apache.org/maven-release/maven-release-plugin/usage.html):
mvn release:prepare -DdryRun=true
mvn release:prepare
If you mess up:
mvn release:clean
Else:
mvn release:perform