A Java library for declarative JSON-to-JSON transformations using JSON-based specifications.
Jolt is a Java library for transforming JSON data from one structure to another using JSON-based specifications. It solves the problem of restructuring JSON output from databases like ElasticSearch or MongoDB before sending it to clients or other systems. The library focuses on structural transformations, leaving value manipulation to custom Java code.
Java developers working with JSON data from NoSQL databases, APIs, or data pipelines who need to reshape JSON structures declaratively.
Developers choose Jolt for its declarative JSON spec approach, which is more intuitive than XSLT or template-based alternatives, and its optimized performance for reusable transforms in multi-threaded environments.
JSON to JSON transformation library written in Java.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Transformations are defined in JSON documents, making specs reusable, version-controllable, and more intuitive than imperative code, as emphasized in the philosophy section.
Transforms can be initialized once and reused across multiple threads, optimizing performance for web services, per the Performance notes in the README.
Multiple transforms like shift, default, and remove can be chained together via Chainr for complex restructuring, demonstrated in the unit test examples.
Focuses solely on reshaping JSON trees without value manipulation, making it efficient for pre-processing database outputs like ElasticSearch hits, as stated in the Overview.
Lacks streaming support, requiring full in-memory JSON hydration that can bottleneck with very large documents, explicitly admitted in the Performance section.
Tied to the Java ecosystem, limiting adoption in polyglot environments where tools like jq or JsonPath offer more flexibility, as noted in Alternatives.
The Shiftr transform DSL is complex and relies on extensive unit tests and javadoc for learning, rather than providing beginner-friendly tutorials or guides.
Out-of-the-box transforms only handle structure, forcing developers to write custom Java code for value changes, which adds overhead for data-heavy tasks.