IMPORTANT!
This project will be moved under https://github.com/FasterXML/jackson-datatype-collections soon, to simplify management, release process.
Project to build Jackson (http://jackson.codehaus.org) module (jar) to support JSON serialization and deserialization of High-Performance Primitive Collections (see http://labs.carrotsearch.com/hppc.html) datatypes.
Currently (2.5) following things are supported:
- Serializing of all 'XxxContainer' (IntContainer, IntSet, IntArrayList, LongContainer, DoubleContainer etc) types
- Deserialization of all
int
valued container types
and following are not yet supported:
- Deserialization for other primitive types
- Handling of 'map' types (ie. 'XYAssociateContainer' implementations)
plan is to support full fidelity of Jackson annotation configurability; meaning that all generic types (ones with 'Object' in name, and with generic type parameter) could be supported; as well as use of included type information.
However, due to on-going competing work, at this point (May 2015) the best way to get additional coverage is to contribute code. Jackson team is happy to merge code contributions, and help with implementation details.
Starting with version 2.6 of the module, minimum JDK is 1.7. This is because HPPC 0.7.1 requires it. Jackson core components only require 1.6.
To use module on Maven-based projects, use following dependency:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hppc</artifactId>
<version>2.5.3</version>
</dependency>
(or whatever version is most up-to-date at the moment)
To use the the Module in Jackson, simply register it with the ObjectMapper instance: Modules are registered through ObjectMapper, like so:
ObjectMapper mapper = new ObjectMapper();
mapper.register(new HppcModule());
after which you can read JSON as HPCC types, as well as write HPPC types as JSON. It's really that simple; convenient and efficient.