{"id":20340367,"url":"https://github.com/toolisticon/jackson-avro-module","last_synced_at":"2025-09-10T06:39:39.044Z","repository":{"id":57736350,"uuid":"465669070","full_name":"toolisticon/jackson-avro-module","owner":"toolisticon","description":"Serialize/Deserialize generated avro records to/from json using jackson objectMapper","archived":false,"fork":false,"pushed_at":"2024-10-09T20:34:07.000Z","size":80,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"develop","last_synced_at":"2025-01-14T18:11:24.384Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/toolisticon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-03T10:20:06.000Z","updated_at":"2024-10-09T20:34:11.000Z","dependencies_parsed_at":"2025-01-14T17:34:03.131Z","dependency_job_id":"8c4d76e1-9f6e-4b25-b912-6337b90fb06a","html_url":"https://github.com/toolisticon/jackson-avro-module","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fjackson-avro-module","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fjackson-avro-module/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fjackson-avro-module/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fjackson-avro-module/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/toolisticon","download_url":"https://codeload.github.com/toolisticon/jackson-avro-module/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241867663,"owners_count":20033815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T21:21:30.079Z","updated_at":"2025-03-04T14:45:25.187Z","avatar_url":"https://github.com/toolisticon.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jackson-avro-module\n\nA jackson-module that allows serializing and deserializing generated avro specific record instances with the jackson ObjectMapper. \n\n[![stable](https://img.shields.io/badge/lifecycle-STABLE-green.svg)](https://github.com/holisticon#open-source-lifecycle)\n[![Build Status](https://github.com/toolisticon/jackson-avro-module/workflows/Development%20branches/badge.svg)](https://github.com/toolisticon/jackson-avro-module/actions)\n[![sponsored](https://img.shields.io/badge/sponsoredBy-Holisticon-RED.svg)](https://holisticon.de/)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.toolisticon.jackson.module/jackson-avro-module/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.toolisticon.jackson.module/jackson-avro-module)\n\n## The problem\n\nIf you define your schema in avro and generate a class using the avro generator, the generated class contains fields (`schema`, `specificData`)\nthat can not be serialized by the default jackson ObjectMapper.\n\n## Non working workarounds\n\n* avro itself provides a `JacksonUtils` class that can ignore fields based on visibility. Problem: The feature is hidden and modifies the global `ObjectMapper`, so a change only required for `SpecificRecordBase` classes will affect all.\n* jackson on the other hand provides the `com.fasterxml.jackson.dataformat.avro.AvroSerializerModifier`, but this one just ignores (current version 2.13.4) just one of the two needed properties.\n\n## The solution\n\nThis library provides a single [`JacksonAvroModule`](./src/main/kotlin/JacksonAvroModule.kt) that uses a modified version of the `jackson-databind-avro` modifier to exclude bean properties from serialization. \n\n## How to use\n\nIt is as simple as adding any other jackson-module to your `ObjectMapper` configuration:\n\n```\nObjectMapper om = new ObjectMapper()\n                      .registerModule(new JacksonAvroModule());\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoolisticon%2Fjackson-avro-module","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoolisticon%2Fjackson-avro-module","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoolisticon%2Fjackson-avro-module/lists"}