Description
This project is the main hub to all kinds of documentation related to Jackson JSON Processor.
Jackson alternatives and similar libraries
Based on the "JSON" category.
Alternatively, view Jackson alternatives based on common mentions on social networks and blogs.
-
Gson
A Java serialization/deserialization library to convert Java Objects into JSON and back -
LoganSquare
Screaming fast JSON parsing and serialization library for Android. -
jsoniter
jsoniter (json-iterator) is fast and flexible JSON parser available in Java and Go -
jackson-modules-java8
Set of support modules for Java 8 datatypes (Optionals, date/time) and features (parameter names) -
JSON-io
Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer. -
Jackson-datatype-money
Extension module to properly support datatypes of javax.money -
YaGson
A universal types-preserving Java serialization library that can convert arbitrary Java Objects into JSON and back, with a transparent support of any kind of self-references and with a full Java 9 compatibility. -
Java-SerialX
Store Java objects into JSON or any format you want! SerialX is a powerful lightweight utility library to serialize Java objects programmatically via tweakable recursive descent parser for custom domain-specific languages!
Write Clean Java Code. Always.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Jackson or a related project?
Popular Comparisons
README
Overview
This project contains core low-level incremental ("streaming") parser and generator abstractions used by Jackson Data Processor. It also includes the default implementation of handler types (parser, generator) that handle JSON format. The core abstractions are not JSON specific, although naming does contain 'JSON' in many places, due to historical reasons. Only packages that specifically contain word 'json' are JSON-specific.
This package is the base on which Jackson data-binding package builds on. It is licensed under Apache License 2.0.
Alternate data format implementations (like Smile (binary JSON), XML, CSV, Protobuf, and CBOR) also build on this base package, implementing the core interfaces, making it possible to use standard data-binding package regardless of underlying data format.
Project contains versions 2.0 and above: source code for earlier (1.x) versions can be found from [Jackson-1](../../../jackson-1) github repo.
Status
Type | Status |
---|---|
Build (CI) | |
Artifact | |
OSS Sponsorship | |
Javadocs | |
Code coverage (2.13) | |
CodeQ (LGTM.com) | |
CodeQ (ClusterFuzz) |
Get it!
Maven
Functionality of this package is contained in
Java package com.fasterxml.jackson.core
.
To use the package, you need to use following Maven dependency:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version.core}</version>
</dependency>
or download jars from Maven repository or links on [Wiki](../../wiki). Core jar is a functional OSGi bundle, with proper import/export declarations.
Package has no external dependencies, except for testing (which uses JUnit
).
Non-Maven
For non-Maven use cases, you download jars from Central Maven repository.
Core jar is also a functional OSGi bundle, with proper import/export declarations, so it can be use on OSGi container as is.
Jackson 2.10 and above include module-info.class
definitions so the jar is also a proper Java module (JPMS).
Jackson 2.12 and above include additional Gradle 6 Module Metadata for version alignment with Gradle.
Use it!
General
Usage typically starts with creation of a reusable (and thread-safe, once configured) JsonFactory
instance:
// Builder-style since 2.10:
JsonFactory factory = JsonFactory.builder()
// configure, if necessary:
.enable(JsonReadFeature.ALLOW_JAVA_COMMENTS)
.build();
// older 2.x mechanism, still supported for 2.x
JsonFactory factory = new JsonFactory();
// configure, if necessary:
factory.enable(JsonReadFeature.ALLOW_JAVA_COMMENTS);
Alternatively, you have an ObjectMapper
(from Jackson Databind package) handy; if so, you can do:
JsonFactory factory = objectMapper.getFactory();
Usage, simple reading
All reading is by using JsonParser
(or its sub-classes, in case of data formats other than JSON),
instance of which is constructed by JsonFactory
.
An example can be found from Reading and Writing Event Streams
Usage, simple writing
All writing is by using JsonGenerator
(or its sub-classes, in case of data formats other than JSON),
instance of which is constructed by JsonFactory
:
An example can be found from Reading and Writing Event Streams
Support
Community support
Jackson components are supported by the Jackson community through mailing lists, Gitter forum, Github issues. See [Participation, Contributing](../../../jackson#participation-contributing) for full details.
Enterprise support
Available as part of the Tidelift Subscription.
The maintainers of jackson-core
and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more.
Further reading
Differences from Jackson 1.x
Project contains versions 2.0 and above: source code for the latest 1.x version (1.9.13) is available from FasterXML/jackson-1 repo (unmaintained).
Note that the main differences compared to 1.0 core jar are:
- Maven build instead of Ant
- Annotations carved out to a separate package (that this package depends on)
- Java package is now
com.fasterxml.jackson.core
(instead oforg.codehaus.jackson
)
Links
- Project [Wiki](../../wiki) has JavaDocs and links to downloadable artifacts
- Jackson (portal) has links to all FasterXML-maintained "official" Jackson components
- Jackson Docs is the portal/hub for all kinds of Jackson documentation
*Note that all licence references and agreements mentioned in the Jackson README section above
are relevant to that project's source code only.