jackson-json-reference
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.
Features
- 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.
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
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( /*...*/ );
Output
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("out.json"), node);
Install
Maven
<dependencies>
<dependency>
<groupId>me.andrz.jackson</groupId>
<artifactId>jackson-json-reference-core</artifactId>
<version>0.3.2</version>
</dependency>
</dependencies>
Gradle
repositories {
mavenCentral()
}
dependencies {
compile 'me.andrz.jackson:jackson-json-reference-core:0.3.2'
}
Manual
Download JAR(s) from Maven Central:
License
See LICENSE.
Development
Publishing
- 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