# fasterxml/jackson-databind

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/fasterxml-jackson-databind).**

3,729 stars · 1,494 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/FasterXML/jackson-databind
- awesome-repositories: https://awesome-repositories.com/repository/fasterxml-jackson-databind.md

## Topics

`hacktoberfest` `jackson` `jackson-databind` `json`

## Description

Jackson-databind is a Java serialization framework and JSON data binding library used to convert Java objects to JSON and vice versa. It functions as a JSON streaming API that generates and parses content as a sequence of tokens, and as a hierarchical data tree mapper that reads data into a node structure for dynamic modification without predefined classes.

The project provides a structured mapping process to bind data to objects, allowing for the transformation of complex Java objects into data formats and the reconstruction of objects from those formats. It supports custom data format mapping to ensure compatibility between different data schemas and allows for the incremental streaming of data to manage memory usage and parsing speed.

Capability areas include the configuration of serialization and deserialization behavior, the ability to map or ignore specific property names, and the definition of custom object creation for immutable types. The framework also supports converting between different object types using internal intermediate representations.

## Tags

### Part of an Awesome List

- [JSON and Data Parsing](https://awesome-repositories.com/f/awesome-lists/data/json-and-data-parsing.md) — Provides comprehensive capabilities for parsing, serializing, and binding Java objects to JSON data.

### Data & Databases

- [Token-Based Streaming Parsers](https://awesome-repositories.com/f/data-databases/token-based-streaming-parsers.md) — Functions as a low-level token-based streaming parser that processes data streams incrementally for high performance.
- [Data Format Converters](https://awesome-repositories.com/f/data-databases/data-format-converters.md) — Transforms supported data formats into Java objects based on configurable reading rules. ([source](https://github.com/FasterXML/jackson-databind/wiki/JacksonFeatures))
- [Token-Based Stream Parsers](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-serialization/json-serializers/json-api-formatters/token-based-stream-parsers.md) — Includes a low-level streaming API for high-performance JSON generation and parsing via token sequences.
- [Incremental Data Streaming](https://awesome-repositories.com/f/data-databases/incremental-data-streaming.md) — Processes data as a sequence of tokens to ensure high performance and minimal memory usage during parsing. ([source](https://cdn.jsdelivr.net/gh/fasterxml/jackson-databind@3.x/README.md))
- [Serialization Frameworks](https://awesome-repositories.com/f/data-databases/serialization-frameworks.md) — Functions as a full serialization framework for converting Java objects to and from multiple data formats.
- [Token-Based Data Streaming](https://awesome-repositories.com/f/data-databases/token-based-data-streaming.md) — Implements a high-performance streaming API that processes JSON content as a sequence of tokens to minimize memory overhead.
- [JSON Schema Format Mappings](https://awesome-repositories.com/f/data-databases/custom-type-converters/openapi-format-mapping/json-schema-format-mappings.md) — Defines how specific object properties are named and handled to ensure compatibility between different data schemas.
- [Serialization Behavior Settings](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-serialization/serialization-configuration-managers/data-type-serialization-configurations/serialization-behavior-settings.md) — Provides control over serialization output, including pretty-printing, empty object handling, and date formatting. ([source](https://cdn.jsdelivr.net/gh/fasterxml/jackson-databind@3.x/README.md))
- [Property Name Mappings](https://awesome-repositories.com/f/data-databases/naming-conventions/property-name-mappings.md) — Provides property name mapping to override default object property names with descriptive labels during conversion. ([source](https://cdn.jsdelivr.net/gh/fasterxml/jackson-databind@3.x/README.md))
- [Deserialization Behavior Settings](https://awesome-repositories.com/f/data-databases/table-data-processing/stream-ingestion/stream-to-online-store-ingestion/kafka-stream-ingestion/configurable-deserialization/deserialization-behavior-settings.md) — Allows adjusting deserialization behavior, such as ignoring unknown properties or coercing empty strings to null. ([source](https://cdn.jsdelivr.net/gh/fasterxml/jackson-databind@3.x/README.md))

### Programming Languages & Runtimes

- [JSON Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/json-libraries.md) — Provides industry-standard JSON parsing, generation, and object mapping capabilities for Java applications.
- [Object Serialization](https://awesome-repositories.com/f/programming-languages-runtimes/object-serialization.md) — Transforms complex Java objects into various data formats for persistence or network transmission.

### Software Engineering & Architecture

- [Object-to-Data Mapping Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/data-modeling-frameworks/object-to-data-mapping-frameworks.md) — Implements a structured mapping process to bind raw data formats into typed Java objects and vice versa. ([source](https://cdn.jsdelivr.net/gh/fasterxml/jackson-databind@3.x/README.md))
- [Reflection-Based Data Mapping](https://awesome-repositories.com/f/software-engineering-architecture/metadata-attachments/struct-tags/reflection-based-type-mapping/reflection-based-data-mapping.md) — Uses Java reflection to map data fields to object properties by inspecting class structures at runtime.
- [Node-Tree Data Models](https://awesome-repositories.com/f/software-engineering-architecture/node-tree-data-models.md) — Provides a hierarchical node-tree data model to allow manipulation of data without requiring predefined concrete classes.
- [Annotation-Driven Configuration](https://awesome-repositories.com/f/software-engineering-architecture/annotation-driven-configuration.md) — Provides annotation-driven configuration to control serialization and deserialization logic directly on class fields and methods.
- [Bytecode-Generated Accessors](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-code-generation/iterative-code-generation/accessor-generators/bytecode-generated-accessors.md) — Generates optimized bytecode for accessors at runtime to eliminate reflection overhead during object property access.
- [Data Encoders and Decoders](https://awesome-repositories.com/f/software-engineering-architecture/data-encoders-and-decoders.md) — Provides low-level APIs to encode and decode structured data formats via streaming. ([source](https://github.com/FasterXML/jackson-databind/wiki/JacksonFeatures))
- [Property Exclusions](https://awesome-repositories.com/f/software-engineering-architecture/property-exclusions.md) — Enables ignoring specific fields or methods during the conversion between Java objects and data formats. ([source](https://cdn.jsdelivr.net/gh/fasterxml/jackson-databind@3.x/README.md))
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures.md) — Employs a plugin-based architecture to extend core functionality with support for new data formats and custom types.
