Skip to content
Kickstart your scala API client by turning JSON into case classes.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

json 2 case class

Kickstart your scala API client by turning JSON into case classes.

Try it at

Use cases

When interacting with 3rd party json-based APIs from scala, modelling the API's responses with case classes can come in handy. If the JSON exhibits some properties (homogenous lists, for instance), it's easy to create a case class with the same structure. With some deserialization magic it's easier to deal with the API's responses.

case class Foo(a: Bar, b: Bar, c: Double)
case class Bar(a: Option[String], b: String)

   "a": {
     "a": "fubar",
     "b": "fubar"
   "b": {
     "b": "baz"
   "c": 42.0

However it's tedious to manually copy the json structure into case classes.

json 2 case class automatically generates case classes from JSON (if possible).


json 2 case class can generate

  • nested case classes from JSON objects
  • lists from JSON arrays
  • scala base types from JSON primitives
  • Option[T] for optional values


Due to the arity limitation of 22 values, some JSON objects can't be encoded with case classes. A Map[String,T] fallback is on the works.

The code is on the project but not activated : need a UI support to choose between map and object

You can’t perform that action at this time.