{"id":19430879,"url":"https://github.com/valaphee/jackson-dataformat-nbt","last_synced_at":"2026-01-02T11:20:02.577Z","repository":{"id":57729377,"uuid":"448143533","full_name":"valaphee/jackson-dataformat-nbt","owner":"valaphee","description":"Support for reading and writing NBT-encoded data via Jackson abstractions.","archived":false,"fork":false,"pushed_at":"2022-12-13T21:40:15.000Z","size":192,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T15:48:31.331Z","etag":null,"topics":["jackson","jackson-databind","nbt","nbt-data","nbt-format","nbt-parser"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/valaphee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-15T00:24:58.000Z","updated_at":"2023-11-26T18:43:53.000Z","dependencies_parsed_at":"2023-01-28T15:15:24.087Z","dependency_job_id":null,"html_url":"https://github.com/valaphee/jackson-dataformat-nbt","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valaphee%2Fjackson-dataformat-nbt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valaphee%2Fjackson-dataformat-nbt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valaphee%2Fjackson-dataformat-nbt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valaphee%2Fjackson-dataformat-nbt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/valaphee","download_url":"https://codeload.github.com/valaphee/jackson-dataformat-nbt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243475358,"owners_count":20296712,"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":["jackson","jackson-databind","nbt","nbt-data","nbt-format","nbt-parser"],"created_at":"2024-11-10T14:27:08.869Z","updated_at":"2026-01-02T11:20:02.529Z","avatar_url":"https://github.com/valaphee.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Overview\n\n[Jackson](../../FasterXML/jackson) (Java) data format module that supports reading and writing\n[NBT](NBT.txt) (\"Named Binary Tag\") encoded data.\nModule extends standard Jackson streaming API (`JsonFactory`, `JsonParser`, `JsonGenerator`),\nand as such works seamlessly with all the higher level data abstractions (data binding, tree model, and pluggable extensions).\n\n# Dependency\n\nTo use this extension on Maven-based projects, use following dependency:\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.valaphee\u003c/groupId\u003e\n  \u003cartifactId\u003ejackson-dataformat-nbt\u003c/artifactId\u003e\n  \u003cversion\u003e1.1.8\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nand for Gradle-based projects:\n\n```kotlin\nimplementation(\"com.valaphee:jackson-dataformat-nbt:1.1.8\")\n```\n\n## Usage\n\nBasic usage is by using `NbtFactory` in places where you would usually use `JsonFactory`\n\n```java\nObjectMapper mapper = new ObjectMapper(new NbtFactory())\n        .registerModule(new SimpleModule().addAbstractTypeMapping(Map.class, DeepEqualsLinkedHashMap.class))\n        .addHandler(EmbeddedObjectDeserializationProblemHandler.INSTANCE);\n// and then read/write data as usual\nSomeType value = ...;\nbyte[] nbtData = mapper.writeValueAsBytes(value);\nSomeType otherValue = mapper.readValue(nbtData, SomeType.class);\n```\n\nImplementation allows use of any of 3 main operating modes:\n\n* Streaming API (`NbtParser` and `NbtGenerator`)\n* Databinding (via `ObjectMapper` / `ObjectReader` / `ObjectWriter`)\n* Tree Model (using `TreeNode`, or its concrete subtype, `JsonNode` -- not JSON-specific despite the name)\n\nand all the usual data-binding use cases exactly like when using `JSON` or `Smile` (2 canonical 100% supported Jackson data formats).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalaphee%2Fjackson-dataformat-nbt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvalaphee%2Fjackson-dataformat-nbt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalaphee%2Fjackson-dataformat-nbt/lists"}