Skip to content

manami-project/modb-serde

Repository files navigation

Build Coverage Status jdk21

modb-serde

modb stands for Manami Offline DataBase. Repositories prefixed with this acronym are used to create the manami-project/anime-offline-database.

What does this lib do?

This lib can serialize and deserialize (serde) both the anime dataset file as well as the files for the dead entries.

Usage

Create an instance of the respective JsonSerializer:

// deserialize a the JSON String of the anime dataset file
val animeListDeserializer = AnimeListJsonStringDeserializer()

// deserialize a the JSON String of a dead entries file
val deadEntriesDeserializer = DeadEntriesJsonStringDeserializer()

Wrap the instance above in a ExternalResourceJsonDeserializer to be able to deserialize a URL or a Path

val animeDatasetFileDeserializer = DefaultExternalResourceJsonDeserializer<Anime>(deserializer = AnimeListJsonStringDeserializer())

val deadEntriesFileDeserializer = DefaultExternalResourceJsonDeserializer<AnimeId>(deserializer = DeadEntriesJsonStringDeserializer())

Now you can either deserialize the anime dataset file or a dead entries file by using a URL or a Path. The DefaultExternalResourceJsonDeserializer can also handle zipped files, but the zip file must only contain a single JSON file.

Example:

val deserializer = DefaultExternalResourceJsonDeserializer<Anime>(deserializer = AnimeListJsonStringDeserializer())
val allAnime: List<Dataset> = deserializer.deserialize(URI("https://raw.githubusercontent.com/manami-project/anime-offline-database/master/anime-offline-database.json").toURL())

About

This lib can serialize and deserialize (serde) both the anime dataset file as well as the files for the dead entries.

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages