All Projects → FasterXML → Jackson Module Scala

FasterXML / Jackson Module Scala

Add-on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Jackson Module Scala

Jackson Jaxrs Providers
Multi-module project that contains Jackson-based JAX-RS providers for JSON, XML, YAML, Smile, CBOR formats
Stars: ✭ 98 (-77.26%)
Mutual labels:  hacktoberfest, jackson
Jackson
Main Portal page for the Jackson project
Stars: ✭ 7,066 (+1539.44%)
Mutual labels:  hacktoberfest, jackson
Jackson Databind
General data-binding package for Jackson (2.x): works on streaming API (core) implementation(s)
Stars: ✭ 2,959 (+586.54%)
Mutual labels:  hacktoberfest, jackson
Jackson Module Kotlin
Module that adds support for serialization/deserialization of Kotlin (http://kotlinlang.org) classes and data classes.
Stars: ✭ 830 (+92.58%)
Mutual labels:  hacktoberfest, jackson
Jackson Core
Core part of Jackson that defines Streaming API as well as basic shared abstractions
Stars: ✭ 2,003 (+364.73%)
Mutual labels:  hacktoberfest, jackson
Jackson Dataformats Text
Uber-project for (some) standard Jackson textual format backends: csv, properties, yaml (xml to be added in future)
Stars: ✭ 258 (-40.14%)
Mutual labels:  hacktoberfest, jackson
Jackson Modules Java8
Set of support modules for Java 8 datatypes (Optionals, date/time) and features (parameter names)
Stars: ✭ 312 (-27.61%)
Mutual labels:  hacktoberfest, jackson
Lavalink
Standalone audio sending node based on Lavaplayer.
Stars: ✭ 420 (-2.55%)
Mutual labels:  hacktoberfest
Marshmallow Sqlalchemy
SQLAlchemy integration with marshmallow
Stars: ✭ 426 (-1.16%)
Mutual labels:  hacktoberfest
30 Seconds Of Java
Collection of reusable tested Java 11 compatible code snippets that you can understand in 30 seconds or less.
Stars: ✭ 421 (-2.32%)
Mutual labels:  hacktoberfest
Digitalocean Cloud Controller Manager
Kubernetes cloud-controller-manager for DigitalOcean (beta)
Stars: ✭ 418 (-3.02%)
Mutual labels:  hacktoberfest
Deimosc2
DeimosC2 is a Golang command and control framework for post-exploitation.
Stars: ✭ 423 (-1.86%)
Mutual labels:  hacktoberfest
Sync gateway
Manages access and synchronization between Couchbase Lite and Couchbase Server
Stars: ✭ 427 (-0.93%)
Mutual labels:  hacktoberfest
Ngx Scanner
Angular (2+) QR code, Barcode, DataMatrix, scanner component using ZXing.
Stars: ✭ 420 (-2.55%)
Mutual labels:  hacktoberfest
Suckit
Suck the InTernet
Stars: ✭ 429 (-0.46%)
Mutual labels:  hacktoberfest
Cli Microsoft365
Manage Microsoft 365 and SharePoint Framework projects on any platform
Stars: ✭ 420 (-2.55%)
Mutual labels:  hacktoberfest
Cheatsheets
Community-sourced cheatsheets
Stars: ✭ 430 (-0.23%)
Mutual labels:  hacktoberfest
Shuffle
Shuffle: A general purpose security automation platform platform. We focus on accessibility for all.
Stars: ✭ 424 (-1.62%)
Mutual labels:  hacktoberfest
Mongo Express
Web-based MongoDB admin interface, written with Node.js and express
Stars: ✭ 4,403 (+921.58%)
Mutual labels:  hacktoberfest
Themer
themer is inspired by trevordmiller/nova and chriskempson/base16.
Stars: ✭ 4,483 (+940.14%)
Mutual labels:  hacktoberfest

Build Status Maven Central

Overview

Jackson is a fast JSON processor for Java that supports three models: streaming, node, and object mapping (akin to the three independent models SAX/[Stax], DOM and JAXB for XML processing).

The object mapping model is a high-level processing model that allows the user to project JSON data onto a domain-specific data model appropriate for their application, without having to deal with the low-level mechanics of JSON parsing. It is the standard object mapping parser implementaton in Jersey, the reference implementation for JSR-311 (Java API for Restful Web Services).

Scala is a functional programming language for the JVM that supports Java interoperability. Its standard library is quite distinct from Java, and does not fulfill the expectations of Jacksons default mappings. Notably, Scala collections do not derive from java.util.Collection or its subclasses, and Scala properties do not (by default) look like Java Bean properties.

The Scala Module supports serialization and limited deserialization of Scala Case Classes, Sequences, Maps, Tuples, Options, and Enumerations.

Usage

To use the Scala Module in Jackson, simply register it with the ObjectMapper instance:

// With 2.10 and later
val mapper = JsonMapper.builder()
  .addModule(DefaultScalaModule)
  .build()

// versions before 2.10 (also support for later 2.x but not 3.0)
val mapper = new ObjectMapper()
mapper.registerModule(DefaultScalaModule)

DefaultScalaModule is a Scala object that includes support for all currently supported Scala data types. If only partial support is desired, the component traits can be included individually:

val module = new OptionModule with TupleModule {}
val mapper = JsonMapper.builder()
  .addModule(module)
  .build()

You can also mixin ScalaObjectMapper to get rich wrappers that automatically convert scala manifests directly into TypeReferences for Jackson to use (now depecated because manifests are not supported in Scala 3):

val mapper = new ObjectMapper() with ScalaObjectMapper
mapper.registerModule(DefaultScalaModule)
val myMap = mapper.readValue[Map[String,Tuple2[Int,Int]]](src)

This is the equivalent of

val mapper = JsonMapper.builder().addModule(DefaultScalaModule).build()
val myMap = mapper.readValue(src, new TypeReference[Map[String,Tuple2[Int,Int]]]{})

Consult the Scaladoc for further details.

Building

The master branch often depends on SNAPSHOT versions of the core Jackson projects, which are published to the Sonatype OSS Repository. To make these dependencies available, create a file called sonatype.sbt in the same directory as build.sbt with the following content. The project .gitignore file intentionally prevents this file from being checked in.

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"

Download, docs

Check out Wiki. API Scaladocs can be found on the project site but they are not really well suited to end users, as most classes are implementation details of the module.

Contributing

The main mechanisms for contribution are:

  • Reporting issues, suggesting improved functionality on Github issue tracker
  • Participating in discussions on mailing lists, Gitter (see Jackson portal for details)
  • Submitting Pull Requests (PRs) to fix issues, improve functionality.

Core Development Team

Currently active core developers (ones who can review, accept and merge Pull Requests) are:

If you have questions on issues, implementation strategies, you may refer to core developers (and this is recommended if you are in doubt!), but keep in mind that these are voluntary positions: everyone is doing this because they want to, not because they are paid or contractually obligated to. This also means that time availability changes over time so getting answers may take time.

In addition other Jackson developers with similar access (but less active) include

Acknowledgements

Developed with IntelliJ IDEA

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].